<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>IDA SDK: pro.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">IDA SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="files.html"><span>Header&#160;Files</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">pro.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This is the first header included in the IDA project. </p>
<p>It defines the most common types, functions and data. Also, it tries to make system dependent definitions.</p>
<p>The following preprocessor macros are used in the project (the list may be incomplete)</p>
<p>Platform must be specified as one of:</p>
<p>__OS2__ - OS/2 <br />
 __MSDOS__ - MS DOS 32-bit extender <br />
 __NT__ - MS Windows (all platforms) <br />
 __LINUX__ - Linux <br />
 __MAC__ - MAC OS X <br />
 __BSD__ - FreeBSD</p>
<p>UNDER_CE - Compiling for WindowsCE</p>
<p>__EA64__ - 64-bit address size (sizeof(ea_t)==8) <br />
 __X64__ - 64-bit IDA itself (sizeof(void*)==8)</p>
<p>__X86__ - Intel x86 processor (default) <br />
 __PPC__ - PowerPC <br />
 __ARM__ - ARM </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structqstatbuf.html">qstatbuf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes miscellaneous file attributes.  <a href="structqstatbuf.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqvector.html">qvector&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reimplementation of vector class from STL.  <a href="classqvector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqstack.html">qstack&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reimplementation of stack class from STL.  <a href="classqstack.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqrefcnt__t.html">qrefcnt_t&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smart pointer to objects derived from <a class="el" href="classqrefcnt__obj__t.html" title="Base class for reference count objects. ">qrefcnt_obj_t</a>.  <a href="classqrefcnt__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqrefcnt__obj__t.html">qrefcnt_obj_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class for reference count objects.  <a href="classqrefcnt__obj__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqiterator.html">qiterator&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface class for iterator types.  <a href="classqiterator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class__qstring.html">_qstring&lt; qchar &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reimplementation of the string class from STL.  <a href="class__qstring.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classbytevec__t.html">bytevec_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector of bytes (use for dynamic memory)  <a href="classbytevec__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structreloc__info__t.html">reloc_info_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relocation information (relocatable objects - see <a class="el" href="structrelobj__t.html" title="Relocatable object. ">relobj_t</a>)  <a href="structreloc__info__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrelobj__t.html">relobj_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relocatable object.  <a href="structrelobj__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqlist.html">qlist&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linked list.  <a href="classqlist.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjanitor__t.html">janitor_t&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resource janitor to facilitate use of the RAII idiom.  <a href="structjanitor__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structchannel__redir__t.html">channel_redir_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tools for command line parsing.  <a href="structchannel__redir__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structinstant__dbgopts__t.html">instant_dbgopts_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for instant debugging.  <a href="structinstant__dbgopts__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlaunch__process__params__t.html">launch_process_params_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information for launching a process with IDA API.  <a href="structlaunch__process__params__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classqmutex__locker__t.html">qmutex_locker_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex locker object. Will lock a given mutex upon creation and unlock it when the object is destroyed.  <a href="classqmutex__locker__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a8719096209b10d667b21202e0de6bcb9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8719096209b10d667b21202e0de6bcb9"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a">int64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8719096209b10d667b21202e0de6bcb9">qatoll</a> (const char *nptr)</td></tr>
<tr class="memdesc:a8719096209b10d667b21202e0de6bcb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert string to 64 bit integer. <br /></td></tr>
<tr class="separator:a8719096209b10d667b21202e0de6bcb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4f4c43b48ed3d504128b29f6528c1d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae4f4c43b48ed3d504128b29f6528c1d6"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae4f4c43b48ed3d504128b29f6528c1d6">get_secs</a> (<a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> t)</td></tr>
<tr class="memdesc:ae4f4c43b48ed3d504128b29f6528c1d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the 'seconds since the epoch' part of a qtime64_t. <br /></td></tr>
<tr class="separator:ae4f4c43b48ed3d504128b29f6528c1d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6677b17961b5de3b8fc1878e3809f664"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6677b17961b5de3b8fc1878e3809f664"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6677b17961b5de3b8fc1878e3809f664">get_usecs</a> (<a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> t)</td></tr>
<tr class="memdesc:a6677b17961b5de3b8fc1878e3809f664"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the microseconds part of a qtime64_t. <br /></td></tr>
<tr class="separator:a6677b17961b5de3b8fc1878e3809f664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f5fbc936e262a0d8ccdec9beb848331"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0f5fbc936e262a0d8ccdec9beb848331">make_qtime64</a> (<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> secs, DEFARG(<a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> usecs, 0))</td></tr>
<tr class="memdesc:a0f5fbc936e262a0d8ccdec9beb848331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce" title="64-bit time value expressed as seconds and microseconds since the Epoch ">qtime64_t</a> instance from a seconds value and microseconds value.  <a href="#a0f5fbc936e262a0d8ccdec9beb848331">More...</a><br /></td></tr>
<tr class="separator:a0f5fbc936e262a0d8ccdec9beb848331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a664397b8a8fca96db609128e0ed314"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1a664397b8a8fca96db609128e0ed314">qctime</a> (char *buf, size_t bufsize, <a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a> t)</td></tr>
<tr class="memdesc:a1a664397b8a8fca96db609128e0ed314"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts calendar time into a string.  <a href="#a1a664397b8a8fca96db609128e0ed314">More...</a><br /></td></tr>
<tr class="separator:a1a664397b8a8fca96db609128e0ed314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a430b7ab0ffcb2caf063a4956ac8e09a5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a430b7ab0ffcb2caf063a4956ac8e09a5">qctime_utc</a> (char *buf, size_t bufsize, <a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a> t)</td></tr>
<tr class="memdesc:a430b7ab0ffcb2caf063a4956ac8e09a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts calendar time into a string using Coordinated Universal Time (UTC).  <a href="#a430b7ab0ffcb2caf063a4956ac8e09a5">More...</a><br /></td></tr>
<tr class="separator:a430b7ab0ffcb2caf063a4956ac8e09a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad50fcd84175debbba44150dbb6073052"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad50fcd84175debbba44150dbb6073052">qlocaltime</a> (struct tm *_tm, <a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a> t)</td></tr>
<tr class="memdesc:ad50fcd84175debbba44150dbb6073052"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a time value to a tm structure.  <a href="#ad50fcd84175debbba44150dbb6073052">More...</a><br /></td></tr>
<tr class="separator:ad50fcd84175debbba44150dbb6073052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00a277902406b3f757b9c4c38d50973a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00a277902406b3f757b9c4c38d50973a"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a00a277902406b3f757b9c4c38d50973a">qlocaltime64</a> (struct tm *_tm, <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> t)</td></tr>
<tr class="memdesc:a00a277902406b3f757b9c4c38d50973a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="pro_8h.html#ad50fcd84175debbba44150dbb6073052" title="Converts a time value to a tm structure. ">qlocaltime(struct tm *, qtime32_t)</a>, but accepts a 64-bit time value. <br /></td></tr>
<tr class="separator:a00a277902406b3f757b9c4c38d50973a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e11e15611997881aaf72aaa888cd5b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3e11e15611997881aaf72aaa888cd5b1">qstrftime</a> (char *buf, size_t bufsize, const char *format, <a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a> t)</td></tr>
<tr class="memdesc:a3e11e15611997881aaf72aaa888cd5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get string representation of a qtime32_t.  <a href="#a3e11e15611997881aaf72aaa888cd5b1">More...</a><br /></td></tr>
<tr class="separator:a3e11e15611997881aaf72aaa888cd5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cc7a4590c5c7c94a72d945196ba7ef8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cc7a4590c5c7c94a72d945196ba7ef8"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4cc7a4590c5c7c94a72d945196ba7ef8">qstrftime64</a> (char *buf, size_t bufsize, const char *format, <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> t)</td></tr>
<tr class="memdesc:a4cc7a4590c5c7c94a72d945196ba7ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="pro_8h.html#a3e11e15611997881aaf72aaa888cd5b1" title="Get string representation of a qtime32_t. ">qstrftime()</a>, but accepts a 64-bit time value. <br /></td></tr>
<tr class="separator:a4cc7a4590c5c7c94a72d945196ba7ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a516211c4743c98f183569adc57de9045"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a516211c4743c98f183569adc57de9045"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a516211c4743c98f183569adc57de9045">qsleep</a> (int milliseconds)</td></tr>
<tr class="memdesc:a516211c4743c98f183569adc57de9045"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend execution for given number of milliseconds. <br /></td></tr>
<tr class="separator:a516211c4743c98f183569adc57de9045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07e890e75db386ca89e65cf81078ecee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a07e890e75db386ca89e65cf81078ecee">get_nsec_stamp</a> (void)</td></tr>
<tr class="memdesc:a07e890e75db386ca89e65cf81078ecee"><td class="mdescLeft">&#160;</td><td class="mdescRight">High resolution timer.  <a href="#a07e890e75db386ca89e65cf81078ecee">More...</a><br /></td></tr>
<tr class="separator:a07e890e75db386ca89e65cf81078ecee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01443707636069e955376bce0bd4836e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01443707636069e955376bce0bd4836e"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a01443707636069e955376bce0bd4836e">qtime64</a> (void)</td></tr>
<tr class="memdesc:a01443707636069e955376bce0bd4836e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current time with microsecond resolution (in fact the resolution is worse on windows) <br /></td></tr>
<tr class="separator:a01443707636069e955376bce0bd4836e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a949364582660e112cde2942431fdd506"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a949364582660e112cde2942431fdd506">gen_rand_buf</a> (void *buffer, size_t bufsz)</td></tr>
<tr class="memdesc:a949364582660e112cde2942431fdd506"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate a random buffer.  <a href="#a949364582660e112cde2942431fdd506">More...</a><br /></td></tr>
<tr class="separator:a949364582660e112cde2942431fdd506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa566d92429849c81f035fc2f5c643f67"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa566d92429849c81f035fc2f5c643f67"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa566d92429849c81f035fc2f5c643f67">set_qerrno</a> (<a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> code)</td></tr>
<tr class="memdesc:aa566d92429849c81f035fc2f5c643f67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set qerrno. <br /></td></tr>
<tr class="separator:aa566d92429849c81f035fc2f5c643f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2130be457b029a366d04ae2333e8b6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee2130be457b029a366d04ae2333e8b6"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aee2130be457b029a366d04ae2333e8b6">get_qerrno</a> (void)</td></tr>
<tr class="memdesc:aee2130be457b029a366d04ae2333e8b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get qerrno. <br /></td></tr>
<tr class="separator:aee2130be457b029a366d04ae2333e8b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae72a90f168783073acf8ab0e83711e60"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae72a90f168783073acf8ab0e83711e60"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#aa1728270d73c5d1598de1fd691762eb1">NORETURN</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae72a90f168783073acf8ab0e83711e60">interr</a> (int code)</td></tr>
<tr class="memdesc:ae72a90f168783073acf8ab0e83711e60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Show internal error message and terminate execution. <br /></td></tr>
<tr class="separator:ae72a90f168783073acf8ab0e83711e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2806c6575b58eb42bb0d2b96f92fc39b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2806c6575b58eb42bb0d2b96f92fc39b"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2806c6575b58eb42bb0d2b96f92fc39b">qalloc</a> (size_t size)</td></tr>
<tr class="memdesc:a2806c6575b58eb42bb0d2b96f92fc39b"><td class="mdescLeft">&#160;</td><td class="mdescRight">System independent malloc. <br /></td></tr>
<tr class="separator:a2806c6575b58eb42bb0d2b96f92fc39b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8820d5cc099745032331eeb5acedc06e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8820d5cc099745032331eeb5acedc06e"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8820d5cc099745032331eeb5acedc06e">qrealloc</a> (void *alloc, size_t newsize)</td></tr>
<tr class="memdesc:a8820d5cc099745032331eeb5acedc06e"><td class="mdescLeft">&#160;</td><td class="mdescRight">System independent realloc. <br /></td></tr>
<tr class="separator:a8820d5cc099745032331eeb5acedc06e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c3884469a039654d8073862f442194d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c3884469a039654d8073862f442194d"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4c3884469a039654d8073862f442194d">qcalloc</a> (size_t nitems, size_t itemsize)</td></tr>
<tr class="memdesc:a4c3884469a039654d8073862f442194d"><td class="mdescLeft">&#160;</td><td class="mdescRight">System independent calloc. <br /></td></tr>
<tr class="separator:a4c3884469a039654d8073862f442194d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69f9c35c61878b9b72795fa0f47afa26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69f9c35c61878b9b72795fa0f47afa26"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a69f9c35c61878b9b72795fa0f47afa26">qfree</a> (void *alloc)</td></tr>
<tr class="memdesc:a69f9c35c61878b9b72795fa0f47afa26"><td class="mdescLeft">&#160;</td><td class="mdescRight">System independent free. <br /></td></tr>
<tr class="separator:a69f9c35c61878b9b72795fa0f47afa26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4750398edaf310e15c64e5ec15d7692"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4750398edaf310e15c64e5ec15d7692"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa4750398edaf310e15c64e5ec15d7692">qstrdup</a> (const char *string)</td></tr>
<tr class="memdesc:aa4750398edaf310e15c64e5ec15d7692"><td class="mdescLeft">&#160;</td><td class="mdescRight">System independent strdup. <br /></td></tr>
<tr class="separator:aa4750398edaf310e15c64e5ec15d7692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f504e6fb075c97db80fc40357fa5e75"><td class="memTemplParams" colspan="2"><a class="anchor" id="a5f504e6fb075c97db80fc40357fa5e75"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a5f504e6fb075c97db80fc40357fa5e75"><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5f504e6fb075c97db80fc40357fa5e75">qalloc_array</a> (size_t n)</td></tr>
<tr class="memdesc:a5f504e6fb075c97db80fc40357fa5e75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use this class to avoid integer overflows when allocating arrays. <br /></td></tr>
<tr class="separator:a5f504e6fb075c97db80fc40357fa5e75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af18530bd87d8babed040fb63dd9b1136"><td class="memTemplParams" colspan="2"><a class="anchor" id="af18530bd87d8babed040fb63dd9b1136"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:af18530bd87d8babed040fb63dd9b1136"><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#af18530bd87d8babed040fb63dd9b1136">qrealloc_array</a> (T *ptr, size_t n)</td></tr>
<tr class="memdesc:af18530bd87d8babed040fb63dd9b1136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use this class to avoid integer overflows when allocating arrays. <br /></td></tr>
<tr class="separator:af18530bd87d8babed040fb63dd9b1136"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6f63034dc8c1a2f236987740a6623dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa6f63034dc8c1a2f236987740a6623dd">memrev</a> (void *buf, <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> size)</td></tr>
<tr class="memdesc:aa6f63034dc8c1a2f236987740a6623dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reverse memory block.  <a href="#aa6f63034dc8c1a2f236987740a6623dd">More...</a><br /></td></tr>
<tr class="separator:aa6f63034dc8c1a2f236987740a6623dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18ffa492cbd3c5042ecfa00960e7b8a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a18ffa492cbd3c5042ecfa00960e7b8a1">strrpl</a> (char *str, int char1, int char2)</td></tr>
<tr class="memdesc:a18ffa492cbd3c5042ecfa00960e7b8a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace all occurrences of a character within a string.  <a href="#a18ffa492cbd3c5042ecfa00960e7b8a1">More...</a><br /></td></tr>
<tr class="separator:a18ffa492cbd3c5042ecfa00960e7b8a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b2e8a3abf346402ecfd1d28c557dd92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b2e8a3abf346402ecfd1d28c557dd92"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3b2e8a3abf346402ecfd1d28c557dd92">tail</a> (char *str)</td></tr>
<tr class="memdesc:a3b2e8a3abf346402ecfd1d28c557dd92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get tail of a string. <br /></td></tr>
<tr class="separator:a3b2e8a3abf346402ecfd1d28c557dd92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48bedaa8e04ef630a5fe86a83ae8b926"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a48bedaa8e04ef630a5fe86a83ae8b926">tail</a> (const char *str)</td></tr>
<tr class="memdesc:a48bedaa8e04ef630a5fe86a83ae8b926"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get tail of a string.  <a href="#a48bedaa8e04ef630a5fe86a83ae8b926">More...</a><br /></td></tr>
<tr class="separator:a48bedaa8e04ef630a5fe86a83ae8b926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af74a1e4b6b49709fc024d286568c2878"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af74a1e4b6b49709fc024d286568c2878">qstrncpy</a> (char *dst, const char *src, size_t dstsize)</td></tr>
<tr class="memdesc:af74a1e4b6b49709fc024d286568c2878"><td class="mdescLeft">&#160;</td><td class="mdescRight">A safer strncpy - makes sure that there is a terminating zero.  <a href="#af74a1e4b6b49709fc024d286568c2878">More...</a><br /></td></tr>
<tr class="separator:af74a1e4b6b49709fc024d286568c2878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50baa551d4fa0f4fcf77543b7a265324"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50baa551d4fa0f4fcf77543b7a265324"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a50baa551d4fa0f4fcf77543b7a265324">qstpncpy</a> (char *dst, const char *src, size_t dstsize)</td></tr>
<tr class="memdesc:a50baa551d4fa0f4fcf77543b7a265324"><td class="mdescLeft">&#160;</td><td class="mdescRight">A safer stpncpy - returns pointer to the end of the destination nb: ssize_t(dstsize) must be &gt; 0. <br /></td></tr>
<tr class="separator:a50baa551d4fa0f4fcf77543b7a265324"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e9f9105250f378799190e67245488d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e9f9105250f378799190e67245488d9"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9e9f9105250f378799190e67245488d9">qstrncat</a> (char *dst, const char *src, size_t dstsize)</td></tr>
<tr class="memdesc:a9e9f9105250f378799190e67245488d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">A safer strncat - accepts the size of the 'dst' as 'dstsize' and returns dst nb: ssize_t(dstsize) must be &gt; 0. <br /></td></tr>
<tr class="separator:a9e9f9105250f378799190e67245488d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a014e6f74c7c212304c02edc431279f2c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a014e6f74c7c212304c02edc431279f2c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a014e6f74c7c212304c02edc431279f2c">qstrtok</a> (char *s, const char *delim, char **save_ptr)</td></tr>
<tr class="memdesc:a014e6f74c7c212304c02edc431279f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread-safe version of strtok. <br /></td></tr>
<tr class="separator:a014e6f74c7c212304c02edc431279f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7989b0f91d31eb3c1d6e040d1e95b31"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7989b0f91d31eb3c1d6e040d1e95b31"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad7989b0f91d31eb3c1d6e040d1e95b31">qstrlwr</a> (char *str)</td></tr>
<tr class="memdesc:ad7989b0f91d31eb3c1d6e040d1e95b31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the string to lowercase. <br /></td></tr>
<tr class="separator:ad7989b0f91d31eb3c1d6e040d1e95b31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13f5005c03ce74224b8c530e05b79723"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13f5005c03ce74224b8c530e05b79723"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a13f5005c03ce74224b8c530e05b79723">qstrupr</a> (char *str)</td></tr>
<tr class="memdesc:a13f5005c03ce74224b8c530e05b79723"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the string to uppercase. <br /></td></tr>
<tr class="separator:a13f5005c03ce74224b8c530e05b79723"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c7dc639641cee1de7d4d90de696b589"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3c7dc639641cee1de7d4d90de696b589">stristr</a> (const char *s1, const char *s2)</td></tr>
<tr class="memdesc:a3c7dc639641cee1de7d4d90de696b589"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find one string in another (Case insensitive analog of strstr()).  <a href="#a3c7dc639641cee1de7d4d90de696b589">More...</a><br /></td></tr>
<tr class="separator:a3c7dc639641cee1de7d4d90de696b589"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81ed6deb5b6b1731e4275a79cdc003f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81ed6deb5b6b1731e4275a79cdc003f1"></a>
char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a81ed6deb5b6b1731e4275a79cdc003f1">stristr</a> (char *s1, const char *s2)</td></tr>
<tr class="memdesc:a81ed6deb5b6b1731e4275a79cdc003f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="pro_8h.html#a3c7dc639641cee1de7d4d90de696b589" title="Find one string in another (Case insensitive analog of strstr()). ">stristr(const char *, const char *)</a> but returns a non-const result. <br /></td></tr>
<tr class="separator:a81ed6deb5b6b1731e4275a79cdc003f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ac90bf0ac29c89aa99e289aaf939522"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ac90bf0ac29c89aa99e289aaf939522"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522">qisspace</a> (char c)</td></tr>
<tr class="memdesc:a8ac90bf0ac29c89aa99e289aaf939522"><td class="mdescLeft">&#160;</td><td class="mdescRight">is...() functions misbehave with 'char' argument. introduce more robust function <br /></td></tr>
<tr class="separator:a8ac90bf0ac29c89aa99e289aaf939522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f91e2b57011cfd8d3ca19da7750dce0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f91e2b57011cfd8d3ca19da7750dce0"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1f91e2b57011cfd8d3ca19da7750dce0">qisalpha</a> (char c)</td></tr>
<tr class="memdesc:a1f91e2b57011cfd8d3ca19da7750dce0"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:a1f91e2b57011cfd8d3ca19da7750dce0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaca7d4afdb5aa8e32090d9e0dd9ed482"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaca7d4afdb5aa8e32090d9e0dd9ed482"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aaca7d4afdb5aa8e32090d9e0dd9ed482">qisalnum</a> (char c)</td></tr>
<tr class="memdesc:aaca7d4afdb5aa8e32090d9e0dd9ed482"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:aaca7d4afdb5aa8e32090d9e0dd9ed482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c92b79238bfd39958db5ba83129e859"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c92b79238bfd39958db5ba83129e859"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4c92b79238bfd39958db5ba83129e859">qispunct</a> (char c)</td></tr>
<tr class="memdesc:a4c92b79238bfd39958db5ba83129e859"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:a4c92b79238bfd39958db5ba83129e859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a979e55759add194d04063bd1485f4b6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a979e55759add194d04063bd1485f4b6c"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a979e55759add194d04063bd1485f4b6c">qislower</a> (char c)</td></tr>
<tr class="memdesc:a979e55759add194d04063bd1485f4b6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:a979e55759add194d04063bd1485f4b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa09d03b535c7899bf8acd745e92fae6f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa09d03b535c7899bf8acd745e92fae6f"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa09d03b535c7899bf8acd745e92fae6f">qisupper</a> (char c)</td></tr>
<tr class="memdesc:aa09d03b535c7899bf8acd745e92fae6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:aa09d03b535c7899bf8acd745e92fae6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86473640364b4089eae743bc1023d317"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86473640364b4089eae743bc1023d317"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a86473640364b4089eae743bc1023d317">qisprint</a> (char c)</td></tr>
<tr class="memdesc:a86473640364b4089eae743bc1023d317"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:a86473640364b4089eae743bc1023d317"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adde3513e7499377b258743ac939a3cf4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adde3513e7499377b258743ac939a3cf4"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adde3513e7499377b258743ac939a3cf4">qisdigit</a> (char c)</td></tr>
<tr class="memdesc:adde3513e7499377b258743ac939a3cf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:adde3513e7499377b258743ac939a3cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a028de3cd6ef64fbe58db2848bc0aad0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a028de3cd6ef64fbe58db2848bc0aad0b"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a028de3cd6ef64fbe58db2848bc0aad0b">qisxdigit</a> (char c)</td></tr>
<tr class="memdesc:a028de3cd6ef64fbe58db2848bc0aad0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8ac90bf0ac29c89aa99e289aaf939522" title="is...() functions misbehave with &#39;char&#39; argument. introduce more robust function ">qisspace()</a> <br /></td></tr>
<tr class="separator:a028de3cd6ef64fbe58db2848bc0aad0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0f65b4f288a257d8b2ae5160e8e266"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f0f65b4f288a257d8b2ae5160e8e266"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> int <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2f0f65b4f288a257d8b2ae5160e8e266">qtolower</a> (char c)</td></tr>
<tr class="memdesc:a2f0f65b4f288a257d8b2ae5160e8e266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get lowercase equivalent of given char. <br /></td></tr>
<tr class="separator:a2f0f65b4f288a257d8b2ae5160e8e266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e1366b1b72c7c6adb078844df086493"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e1366b1b72c7c6adb078844df086493"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> int <a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0e1366b1b72c7c6adb078844df086493">qtoupper</a> (char c)</td></tr>
<tr class="memdesc:a0e1366b1b72c7c6adb078844df086493"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get uppercase equivalent of given char. <br /></td></tr>
<tr class="separator:a0e1366b1b72c7c6adb078844df086493"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82e5d2c150c3a1d1eed598ea21baf879"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga82e5d2c150c3a1d1eed598ea21baf879"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__qsnprintf.html#ga82e5d2c150c3a1d1eed598ea21baf879">qsnprintf</a> (char *buffer, size_t n, const char *format,...)</td></tr>
<tr class="memdesc:ga82e5d2c150c3a1d1eed598ea21baf879"><td class="mdescLeft">&#160;</td><td class="mdescRight">A safer snprintf. <br /></td></tr>
<tr class="separator:ga82e5d2c150c3a1d1eed598ea21baf879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga463fd2201cca8b6362f1cd42b8403397"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga463fd2201cca8b6362f1cd42b8403397"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__qsnprintf.html#ga463fd2201cca8b6362f1cd42b8403397">qsscanf</a> (const char *input, const char *format,...)</td></tr>
<tr class="memdesc:ga463fd2201cca8b6362f1cd42b8403397"><td class="mdescLeft">&#160;</td><td class="mdescRight">A safer sscanf. <br /></td></tr>
<tr class="separator:ga463fd2201cca8b6362f1cd42b8403397"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf45ba32528a64944837773def69b19ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf45ba32528a64944837773def69b19ff"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__qsnprintf.html#gaf45ba32528a64944837773def69b19ff">qvsnprintf</a> (char *buffer, size_t n, const char *format, va_list va)</td></tr>
<tr class="memdesc:gaf45ba32528a64944837773def69b19ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="group__qsnprintf.html#ga82e5d2c150c3a1d1eed598ea21baf879" title="A safer snprintf. ">qsnprintf()</a> <br /></td></tr>
<tr class="separator:gaf45ba32528a64944837773def69b19ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef7269e1694a397c5c7c1de0efffc608"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaef7269e1694a397c5c7c1de0efffc608"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__qsnprintf.html#gaef7269e1694a397c5c7c1de0efffc608">qvsscanf</a> (const char *input, const char *format, va_list va)</td></tr>
<tr class="memdesc:gaef7269e1694a397c5c7c1de0efffc608"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="group__qsnprintf.html#ga463fd2201cca8b6362f1cd42b8403397" title="A safer sscanf. ">qsscanf()</a> <br /></td></tr>
<tr class="separator:gaef7269e1694a397c5c7c1de0efffc608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6827295cc8e55915b6d07b4dc96d9897"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6827295cc8e55915b6d07b4dc96d9897"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__qsnprintf.html#ga6827295cc8e55915b6d07b4dc96d9897">append_snprintf</a> (char *buf, const char *end, const char *format,...)</td></tr>
<tr class="memdesc:ga6827295cc8e55915b6d07b4dc96d9897"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append result of sprintf to 'buf'. <br /></td></tr>
<tr class="separator:ga6827295cc8e55915b6d07b4dc96d9897"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a509e62fac4101d287473b116b44e0de6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a509e62fac4101d287473b116b44e0de6">GCC_DIAG_OFF</a> (format-nonliteral)</td></tr>
<tr class="memdesc:a509e62fac4101d287473b116b44e0de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">qsnprintf that does not check its arguments.  <a href="#a509e62fac4101d287473b116b44e0de6">More...</a><br /></td></tr>
<tr class="separator:a509e62fac4101d287473b116b44e0de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e0177211b4f17692d47e138a310c743"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e0177211b4f17692d47e138a310c743"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> int&#160;</td><td class="memItemRight" valign="bottom"><b>nowarn_qsnprintf</b> (char *buf, size_t size, const char *format,...)</td></tr>
<tr class="separator:a0e0177211b4f17692d47e138a310c743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5accc4a517885c4cbef83044df33badd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5accc4a517885c4cbef83044df33badd"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>GCC_DIAG_ON</b> (format-nonliteral)</td></tr>
<tr class="separator:a5accc4a517885c4cbef83044df33badd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb07f6b8e62fe99e02386db222eac783"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abb07f6b8e62fe99e02386db222eac783"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#abb07f6b8e62fe99e02386db222eac783">vqmakepath</a> (char *buf, size_t bufsize, const char *s1, va_list)</td></tr>
<tr class="memdesc:abb07f6b8e62fe99e02386db222eac783"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="pro_8h.html#ae31a114fc211533f7589d5ebc12ea214" title="Construct a path from a null-terminated sequence of strings. ">qmakepath()</a> <br /></td></tr>
<tr class="separator:abb07f6b8e62fe99e02386db222eac783"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae31a114fc211533f7589d5ebc12ea214"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae31a114fc211533f7589d5ebc12ea214">qmakepath</a> (char *buf, size_t bufsize, const char *s1,...)</td></tr>
<tr class="memdesc:ae31a114fc211533f7589d5ebc12ea214"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a path from a null-terminated sequence of strings.  <a href="#ae31a114fc211533f7589d5ebc12ea214">More...</a><br /></td></tr>
<tr class="separator:ae31a114fc211533f7589d5ebc12ea214"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af01b16b705d2cebea26f158d00e6fb56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af01b16b705d2cebea26f158d00e6fb56">qgetcwd</a> (char *buf, size_t bufsize)</td></tr>
<tr class="memdesc:af01b16b705d2cebea26f158d00e6fb56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current working directory.  <a href="#af01b16b705d2cebea26f158d00e6fb56">More...</a><br /></td></tr>
<tr class="separator:af01b16b705d2cebea26f158d00e6fb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91ac920d58e898fcc166659cd1ea7a97"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a91ac920d58e898fcc166659cd1ea7a97">qchdir</a> (const char *path)</td></tr>
<tr class="memdesc:a91ac920d58e898fcc166659cd1ea7a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the current working directory.  <a href="#a91ac920d58e898fcc166659cd1ea7a97">More...</a><br /></td></tr>
<tr class="separator:a91ac920d58e898fcc166659cd1ea7a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2e087544b6da9a900418f117ebc8002"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae2e087544b6da9a900418f117ebc8002">qdirname</a> (char *buf, size_t bufsize, const char *path)</td></tr>
<tr class="memdesc:ae2e087544b6da9a900418f117ebc8002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the directory part of the path.  <a href="#ae2e087544b6da9a900418f117ebc8002">More...</a><br /></td></tr>
<tr class="separator:ae2e087544b6da9a900418f117ebc8002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44d6db2829e60d14c9b2889bbead48d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a44d6db2829e60d14c9b2889bbead48d4">qmakefile</a> (char *buf, size_t bufsize, const char *base, const char *ext)</td></tr>
<tr class="memdesc:a44d6db2829e60d14c9b2889bbead48d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct filename from base name and extension.  <a href="#a44d6db2829e60d14c9b2889bbead48d4">More...</a><br /></td></tr>
<tr class="separator:a44d6db2829e60d14c9b2889bbead48d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3375d2d7a58e2655f52bd7d4ec67fba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa3375d2d7a58e2655f52bd7d4ec67fba">qsplitfile</a> (char *file, char **base, char **ext)</td></tr>
<tr class="memdesc:aa3375d2d7a58e2655f52bd7d4ec67fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split filename into base name and extension.  <a href="#aa3375d2d7a58e2655f52bd7d4ec67fba">More...</a><br /></td></tr>
<tr class="separator:aa3375d2d7a58e2655f52bd7d4ec67fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af67b74196a76c81934616a3b506982bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af67b74196a76c81934616a3b506982bf"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af67b74196a76c81934616a3b506982bf">qisabspath</a> (const char *file)</td></tr>
<tr class="memdesc:af67b74196a76c81934616a3b506982bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the file name absolute (not relative to the current dir?) <br /></td></tr>
<tr class="separator:af67b74196a76c81934616a3b506982bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab740dfcab12d40de3733bf9bf414e65c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab740dfcab12d40de3733bf9bf414e65c">qbasename</a> (const char *path)</td></tr>
<tr class="memdesc:ab740dfcab12d40de3733bf9bf414e65c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the file name part of the given path.  <a href="#ab740dfcab12d40de3733bf9bf414e65c">More...</a><br /></td></tr>
<tr class="separator:ab740dfcab12d40de3733bf9bf414e65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1fe42ecc6f8b3e0aa087c7b146a1524"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1fe42ecc6f8b3e0aa087c7b146a1524"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab1fe42ecc6f8b3e0aa087c7b146a1524">qbasename</a> (char *path)</td></tr>
<tr class="memdesc:ab1fe42ecc6f8b3e0aa087c7b146a1524"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="pro_8h.html#ab740dfcab12d40de3733bf9bf414e65c" title="Get the file name part of the given path. ">qbasename(const char *)</a>, but accepts and returns non-const char pointers. <br /></td></tr>
<tr class="separator:ab1fe42ecc6f8b3e0aa087c7b146a1524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89daf99f325087c4e5fa191061ba7a5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89daf99f325087c4e5fa191061ba7a5c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a89daf99f325087c4e5fa191061ba7a5c">qmake_full_path</a> (char *dst, size_t dstsize, const char *src)</td></tr>
<tr class="memdesc:a89daf99f325087c4e5fa191061ba7a5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert relative path to absolute path. <br /></td></tr>
<tr class="separator:a89daf99f325087c4e5fa191061ba7a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855654422b31a8bdaa4f3e0260536b90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a855654422b31a8bdaa4f3e0260536b90">search_path</a> (char *buf, size_t bufsize, const char *file, bool search_cwd)</td></tr>
<tr class="memdesc:a855654422b31a8bdaa4f3e0260536b90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search for a file in the PATH environment variable or the current directory.  <a href="#a855654422b31a8bdaa4f3e0260536b90">More...</a><br /></td></tr>
<tr class="separator:a855654422b31a8bdaa4f3e0260536b90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0f51308d40e1c7024530036295239ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac0f51308d40e1c7024530036295239ef">set_file_ext</a> (char *outbuf, size_t bufsize, const char *file, const char *ext)</td></tr>
<tr class="memdesc:ac0f51308d40e1c7024530036295239ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set file name extension unconditionally.  <a href="#ac0f51308d40e1c7024530036295239ef">More...</a><br /></td></tr>
<tr class="separator:ac0f51308d40e1c7024530036295239ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06be4849edd0436c49fae0e993b19c6f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a06be4849edd0436c49fae0e993b19c6f">get_file_ext</a> (const char *file)</td></tr>
<tr class="memdesc:a06be4849edd0436c49fae0e993b19c6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pointer to extension of file name.  <a href="#a06be4849edd0436c49fae0e993b19c6f">More...</a><br /></td></tr>
<tr class="separator:a06be4849edd0436c49fae0e993b19c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a369ab36c425654696d729893a1e300d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a369ab36c425654696d729893a1e300d1"></a>
bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a369ab36c425654696d729893a1e300d1">has_file_ext</a> (const char *file)</td></tr>
<tr class="memdesc:a369ab36c425654696d729893a1e300d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the given file name have an extension? <br /></td></tr>
<tr class="separator:a369ab36c425654696d729893a1e300d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab6c86016f76c42f57525de46eb867ca"><td class="memItemLeft" align="right" valign="top">char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aab6c86016f76c42f57525de46eb867ca">make_file_ext</a> (char *buf, size_t bufsize, const char *file, const char *ext)</td></tr>
<tr class="memdesc:aab6c86016f76c42f57525de46eb867ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set file name extension if none exists.  <a href="#aab6c86016f76c42f57525de46eb867ca">More...</a><br /></td></tr>
<tr class="separator:aab6c86016f76c42f57525de46eb867ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24d4be9480f8a3318a4ba81d3f95e9dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a24d4be9480f8a3318a4ba81d3f95e9dc">sanitize_file_name</a> (char *name, size_t namesize)</td></tr>
<tr class="memdesc:a24d4be9480f8a3318a4ba81d3f95e9dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sanitize the file name.  <a href="#a24d4be9480f8a3318a4ba81d3f95e9dc">More...</a><br /></td></tr>
<tr class="separator:a24d4be9480f8a3318a4ba81d3f95e9dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb85238b55ebc4b0e2fcfcb989cf3721"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adb85238b55ebc4b0e2fcfcb989cf3721">qopen</a> (const char *file, int mode)</td></tr>
<tr class="memdesc:adb85238b55ebc4b0e2fcfcb989cf3721"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#adb85238b55ebc4b0e2fcfcb989cf3721">More...</a><br /></td></tr>
<tr class="separator:adb85238b55ebc4b0e2fcfcb989cf3721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8e7b75619a4148e19a36aa5dd2896b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8e7b75619a4148e19a36aa5dd2896b2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac8e7b75619a4148e19a36aa5dd2896b2">qopen_shared</a> (const char *file, int mode, int share_mode)</td></tr>
<tr class="memdesc:ac8e7b75619a4148e19a36aa5dd2896b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open file with given sharing_mode (use O_RDONLY, O_WRONLY, O_RDWR flags), sets qerrno. <br /></td></tr>
<tr class="separator:ac8e7b75619a4148e19a36aa5dd2896b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a9f6a29a5e2854641d30cf2f8eac1f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a9f6a29a5e2854641d30cf2f8eac1f2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1a9f6a29a5e2854641d30cf2f8eac1f2">qcreate</a> (const char *file, int stat)</td></tr>
<tr class="memdesc:a1a9f6a29a5e2854641d30cf2f8eac1f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new file with O_RDWR, sets qerrno. <br /></td></tr>
<tr class="separator:a1a9f6a29a5e2854641d30cf2f8eac1f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a815b8597cab8f72ee0c33a12faa9077b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a815b8597cab8f72ee0c33a12faa9077b">qread</a> (int h, void *buf, size_t n)</td></tr>
<tr class="memdesc:a815b8597cab8f72ee0c33a12faa9077b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#a815b8597cab8f72ee0c33a12faa9077b">More...</a><br /></td></tr>
<tr class="separator:a815b8597cab8f72ee0c33a12faa9077b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91ddbdcbaaaa41eb39912b2ceeb829c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a91ddbdcbaaaa41eb39912b2ceeb829c0">qwrite</a> (int h, const void *buf, size_t n)</td></tr>
<tr class="memdesc:a91ddbdcbaaaa41eb39912b2ceeb829c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#a91ddbdcbaaaa41eb39912b2ceeb829c0">More...</a><br /></td></tr>
<tr class="separator:a91ddbdcbaaaa41eb39912b2ceeb829c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee05a09c3b442f6af2d8af9d8a1e12b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aee05a09c3b442f6af2d8af9d8a1e12b4">qtell</a> (int h)</td></tr>
<tr class="memdesc:aee05a09c3b442f6af2d8af9d8a1e12b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#aee05a09c3b442f6af2d8af9d8a1e12b4">More...</a><br /></td></tr>
<tr class="separator:aee05a09c3b442f6af2d8af9d8a1e12b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98bac18686a4052c3b9e2d76a44524b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a98bac18686a4052c3b9e2d76a44524b0">qseek</a> (int h, <a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a">int64</a> offset, int whence)</td></tr>
<tr class="memdesc:a98bac18686a4052c3b9e2d76a44524b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#a98bac18686a4052c3b9e2d76a44524b0">More...</a><br /></td></tr>
<tr class="separator:a98bac18686a4052c3b9e2d76a44524b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58bc7cc6feca35b319505e5379e7f38"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad58bc7cc6feca35b319505e5379e7f38">qclose</a> (int h)</td></tr>
<tr class="memdesc:ad58bc7cc6feca35b319505e5379e7f38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#ad58bc7cc6feca35b319505e5379e7f38">More...</a><br /></td></tr>
<tr class="separator:ad58bc7cc6feca35b319505e5379e7f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd74367683c971ceea2ac42236e4f5f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#abd74367683c971ceea2ac42236e4f5f4">qdup</a> (int h)</td></tr>
<tr class="memdesc:abd74367683c971ceea2ac42236e4f5f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#abd74367683c971ceea2ac42236e4f5f4">More...</a><br /></td></tr>
<tr class="separator:abd74367683c971ceea2ac42236e4f5f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3fd66082d6e27e780227c95cfe3a4fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa3fd66082d6e27e780227c95cfe3a4fe">qfsync</a> (int h)</td></tr>
<tr class="memdesc:aa3fd66082d6e27e780227c95cfe3a4fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Works the same as it's counterpart from Clib.  <a href="#aa3fd66082d6e27e780227c95cfe3a4fe">More...</a><br /></td></tr>
<tr class="separator:aa3fd66082d6e27e780227c95cfe3a4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b8fcb778c6ac0688ede38fc29dd59a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6b8fcb778c6ac0688ede38fc29dd59a7">qfilesize</a> (const char *fname)</td></tr>
<tr class="memdesc:a6b8fcb778c6ac0688ede38fc29dd59a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the file size.  <a href="#a6b8fcb778c6ac0688ede38fc29dd59a7">More...</a><br /></td></tr>
<tr class="separator:a6b8fcb778c6ac0688ede38fc29dd59a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92145319fc95e6fab3d6677769fd297e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a92145319fc95e6fab3d6677769fd297e">qfilelength</a> (int h)</td></tr>
<tr class="memdesc:a92145319fc95e6fab3d6677769fd297e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get file length in bytes.  <a href="#a92145319fc95e6fab3d6677769fd297e">More...</a><br /></td></tr>
<tr class="separator:a92145319fc95e6fab3d6677769fd297e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d3ca4021b1d308dd1aeabeab2aac16f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0d3ca4021b1d308dd1aeabeab2aac16f">qchsize</a> (int h, <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> fsize)</td></tr>
<tr class="memdesc:a0d3ca4021b1d308dd1aeabeab2aac16f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change file size.  <a href="#a0d3ca4021b1d308dd1aeabeab2aac16f">More...</a><br /></td></tr>
<tr class="separator:a0d3ca4021b1d308dd1aeabeab2aac16f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b2c796631d884d94d8d0008c79331e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a94b2c796631d884d94d8d0008c79331e">qmkdir</a> (const char *file, int mode)</td></tr>
<tr class="memdesc:a94b2c796631d884d94d8d0008c79331e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty directory.  <a href="#a94b2c796631d884d94d8d0008c79331e">More...</a><br /></td></tr>
<tr class="separator:a94b2c796631d884d94d8d0008c79331e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a484a84bcb6a67696b339af1c9d6ef45c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a484a84bcb6a67696b339af1c9d6ef45c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a484a84bcb6a67696b339af1c9d6ef45c">qfileexist</a> (const char *file)</td></tr>
<tr class="memdesc:a484a84bcb6a67696b339af1c9d6ef45c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the given file exist? <br /></td></tr>
<tr class="separator:a484a84bcb6a67696b339af1c9d6ef45c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9886dcec95eb78f8c9a1603ff867d29d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9886dcec95eb78f8c9a1603ff867d29d"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9886dcec95eb78f8c9a1603ff867d29d">qisdir</a> (const char *file)</td></tr>
<tr class="memdesc:a9886dcec95eb78f8c9a1603ff867d29d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the given path specify a directory? <br /></td></tr>
<tr class="separator:a9886dcec95eb78f8c9a1603ff867d29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06acc89b643aef8713eb79ebeb03d123"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06acc89b643aef8713eb79ebeb03d123"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstat</b> (const char *path, struct <a class="el" href="structqstatbuf.html">qstatbuf</a> *buf)</td></tr>
<tr class="separator:a06acc89b643aef8713eb79ebeb03d123"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ec5ebd8daec12ed1e70c32d9b43eac7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ec5ebd8daec12ed1e70c32d9b43eac7"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qfstat</b> (int h, struct <a class="el" href="structqstatbuf.html">qstatbuf</a> *buf)</td></tr>
<tr class="separator:a1ec5ebd8daec12ed1e70c32d9b43eac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbf1c5970fc334035e7834b6aab4036c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbf1c5970fc334035e7834b6aab4036c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adbf1c5970fc334035e7834b6aab4036c">qatexit</a> (void(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *func)(void))</td></tr>
<tr class="memdesc:adbf1c5970fc334035e7834b6aab4036c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a function to be called at exit time. <br /></td></tr>
<tr class="separator:adbf1c5970fc334035e7834b6aab4036c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70995b71a577a49e8b4a5c1e0f230db6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70995b71a577a49e8b4a5c1e0f230db6"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a70995b71a577a49e8b4a5c1e0f230db6">del_qatexit</a> (void(<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> *func)(void))</td></tr>
<tr class="memdesc:a70995b71a577a49e8b4a5c1e0f230db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a previously added exit-time function. <br /></td></tr>
<tr class="separator:a70995b71a577a49e8b4a5c1e0f230db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53e88c62090838e19cb5ee945d7ab8f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#aa1728270d73c5d1598de1fd691762eb1">NORETURN</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a53e88c62090838e19cb5ee945d7ab8f7">qexit</a> (int code)</td></tr>
<tr class="memdesc:a53e88c62090838e19cb5ee945d7ab8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call qatexit functions, shut down UI and kernel, and exit.  <a href="#a53e88c62090838e19cb5ee945d7ab8f7">More...</a><br /></td></tr>
<tr class="separator:a53e88c62090838e19cb5ee945d7ab8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4566afa8625a345f9b847c1605df76bf"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4566afa8625a345f9b847c1605df76bf"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a4566afa8625a345f9b847c1605df76bf"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><b>qabs</b> (T x)</td></tr>
<tr class="separator:a4566afa8625a345f9b847c1605df76bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5036be402c9a1aece268b1ba64669392"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5036be402c9a1aece268b1ba64669392"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> bool <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5036be402c9a1aece268b1ba64669392">test_bit</a> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *bitmap, size_t bit)</td></tr>
<tr class="memdesc:a5036be402c9a1aece268b1ba64669392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if 'bit' is set in 'bitmap'. <br /></td></tr>
<tr class="separator:a5036be402c9a1aece268b1ba64669392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc527c0890e282f6ac58816f0cbe7fdc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc527c0890e282f6ac58816f0cbe7fdc"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acc527c0890e282f6ac58816f0cbe7fdc">set_bit</a> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *bitmap, size_t bit)</td></tr>
<tr class="memdesc:acc527c0890e282f6ac58816f0cbe7fdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set 'bit' in 'bitmap'. <br /></td></tr>
<tr class="separator:acc527c0890e282f6ac58816f0cbe7fdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eb985bd1719003d259a3afb520ac787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8eb985bd1719003d259a3afb520ac787"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8eb985bd1719003d259a3afb520ac787">clear_bit</a> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *bitmap, size_t bit)</td></tr>
<tr class="memdesc:a8eb985bd1719003d259a3afb520ac787"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear 'bit' in 'bitmap'. <br /></td></tr>
<tr class="separator:a8eb985bd1719003d259a3afb520ac787"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad625c3fdc5cb8b5fa9a0f97b510f2e34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad625c3fdc5cb8b5fa9a0f97b510f2e34"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad625c3fdc5cb8b5fa9a0f97b510f2e34">set_all_bits</a> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *bitmap, size_t <a class="el" href="bytes_8hpp.html#acc205e32314437fc526186f33867bdf2">nbits</a>)</td></tr>
<tr class="memdesc:ad625c3fdc5cb8b5fa9a0f97b510f2e34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set first 'nbits' of 'bitmap'. <br /></td></tr>
<tr class="separator:ad625c3fdc5cb8b5fa9a0f97b510f2e34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5ddfc1614de8f61a82c73b89a01e857"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5ddfc1614de8f61a82c73b89a01e857"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab5ddfc1614de8f61a82c73b89a01e857">clear_all_bits</a> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *bitmap, size_t <a class="el" href="bytes_8hpp.html#acc205e32314437fc526186f33867bdf2">nbits</a>)</td></tr>
<tr class="memdesc:ab5ddfc1614de8f61a82c73b89a01e857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear first 'nbits' of 'bitmap'. <br /></td></tr>
<tr class="separator:ab5ddfc1614de8f61a82c73b89a01e857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3eabc8059d1c6f5bb82589ab4de09770"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3eabc8059d1c6f5bb82589ab4de09770"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceinterval.html#a3eabc8059d1c6f5bb82589ab4de09770">interval::overlap</a> (<a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off1, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> s1, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off2, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> s2)</td></tr>
<tr class="memdesc:a3eabc8059d1c6f5bb82589ab4de09770"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do (off1,s1) and (off2,s2) overlap? <br /></td></tr>
<tr class="separator:a3eabc8059d1c6f5bb82589ab4de09770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f56d819de3eecff262fd9f8a9fc56d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f56d819de3eecff262fd9f8a9fc56d4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceinterval.html#a8f56d819de3eecff262fd9f8a9fc56d4">interval::includes</a> (<a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off1, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> s1, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off2, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> s2)</td></tr>
<tr class="memdesc:a8f56d819de3eecff262fd9f8a9fc56d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does (off1,s1) include (off2,s2)? <br /></td></tr>
<tr class="separator:a8f56d819de3eecff262fd9f8a9fc56d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fc784a4acb60c20044f05ec04513f4d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8fc784a4acb60c20044f05ec04513f4d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceinterval.html#a8fc784a4acb60c20044f05ec04513f4d">interval::contains</a> (<a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off1, <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> s1, <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> off)</td></tr>
<tr class="memdesc:a8fc784a4acb60c20044f05ec04513f4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does (off1,s1) contain off? <br /></td></tr>
<tr class="separator:a8fc784a4acb60c20044f05ec04513f4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19938e0c6923854730fbf2409ccbf7b9"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a19938e0c6923854730fbf2409ccbf7b9"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a19938e0c6923854730fbf2409ccbf7b9">left_shift</a> (const T &amp;value, int shift)</td></tr>
<tr class="memdesc:a19938e0c6923854730fbf2409ccbf7b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift by the amount exceeding the operand size*8 is undefined by the standard.  <a href="#a19938e0c6923854730fbf2409ccbf7b9">More...</a><br /></td></tr>
<tr class="separator:a19938e0c6923854730fbf2409ccbf7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ed01e11088da1be63006aa766c695c7"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a5ed01e11088da1be63006aa766c695c7"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5ed01e11088da1be63006aa766c695c7">right_ushift</a> (const T &amp;value, int shift)</td></tr>
<tr class="memdesc:a5ed01e11088da1be63006aa766c695c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift by the amount exceeding the operand size*8 is undefined by the standard.  <a href="#a5ed01e11088da1be63006aa766c695c7">More...</a><br /></td></tr>
<tr class="separator:a5ed01e11088da1be63006aa766c695c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae82c1a4b9799b62167768bbea36d0424"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ae82c1a4b9799b62167768bbea36d0424"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae82c1a4b9799b62167768bbea36d0424">right_sshift</a> (const T &amp;value, int shift)</td></tr>
<tr class="memdesc:ae82c1a4b9799b62167768bbea36d0424"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift by the amount exceeding the operand size*8 is undefined by the standard.  <a href="#ae82c1a4b9799b62167768bbea36d0424">More...</a><br /></td></tr>
<tr class="separator:ae82c1a4b9799b62167768bbea36d0424"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e8d0bacfee3e75e9f2c84c6dbdfb0fe"><td class="memTemplParams" colspan="2"><a class="anchor" id="a5e8d0bacfee3e75e9f2c84c6dbdfb0fe"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a5e8d0bacfee3e75e9f2c84c6dbdfb0fe"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5e8d0bacfee3e75e9f2c84c6dbdfb0fe">qrotl</a> (T value, size_t count)</td></tr>
<tr class="memdesc:a5e8d0bacfee3e75e9f2c84c6dbdfb0fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate left. <br /></td></tr>
<tr class="separator:a5e8d0bacfee3e75e9f2c84c6dbdfb0fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12cd12027efcc6c9131b49a784540064"><td class="memTemplParams" colspan="2"><a class="anchor" id="a12cd12027efcc6c9131b49a784540064"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a12cd12027efcc6c9131b49a784540064"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a12cd12027efcc6c9131b49a784540064">qrotr</a> (T value, size_t count)</td></tr>
<tr class="memdesc:a12cd12027efcc6c9131b49a784540064"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate right. <br /></td></tr>
<tr class="separator:a12cd12027efcc6c9131b49a784540064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a726f3e8a83a601fc45c5d16a34a113"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3a726f3e8a83a601fc45c5d16a34a113"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a3a726f3e8a83a601fc45c5d16a34a113"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3a726f3e8a83a601fc45c5d16a34a113">make_mask</a> (int count)</td></tr>
<tr class="memdesc:a3a726f3e8a83a601fc45c5d16a34a113"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a mask of 'count' bits. <br /></td></tr>
<tr class="separator:a3a726f3e8a83a601fc45c5d16a34a113"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7b01a33f0db37cc8a62c8f0fe67a225"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad7b01a33f0db37cc8a62c8f0fe67a225"></a>
template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:ad7b01a33f0db37cc8a62c8f0fe67a225"><td class="memTemplItemLeft" align="right" valign="top">void <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad7b01a33f0db37cc8a62c8f0fe67a225">setflag</a> (T &amp;where, U bit, bool cnd)</td></tr>
<tr class="memdesc:ad7b01a33f0db37cc8a62c8f0fe67a225"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a 'bit' in 'where' if 'value' if not zero. <br /></td></tr>
<tr class="separator:ad7b01a33f0db37cc8a62c8f0fe67a225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3adbc75fa70a61a375bccf50dc5c2ba5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a3adbc75fa70a61a375bccf50dc5c2ba5"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a3adbc75fa70a61a375bccf50dc5c2ba5"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3adbc75fa70a61a375bccf50dc5c2ba5">is_mul_ok</a> (T count, T elsize)</td></tr>
<tr class="memdesc:a3adbc75fa70a61a375bccf50dc5c2ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check that unsigned multiplication does not overflow. <br /></td></tr>
<tr class="separator:a3adbc75fa70a61a375bccf50dc5c2ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1a8d90f85995bb3fa388df9a94b8a17"><td class="memTemplParams" colspan="2"><a class="anchor" id="ac1a8d90f85995bb3fa388df9a94b8a17"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:ac1a8d90f85995bb3fa388df9a94b8a17"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac1a8d90f85995bb3fa388df9a94b8a17">is_add_ok</a> (T x, T y)</td></tr>
<tr class="memdesc:ac1a8d90f85995bb3fa388df9a94b8a17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check that unsigned addition does not overflow. <br /></td></tr>
<tr class="separator:ac1a8d90f85995bb3fa388df9a94b8a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab73f409fbca4369979fd0966614bf466"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab73f409fbca4369979fd0966614bf466">extend_sign</a> (<a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> v, int nbytes, bool sign_extend)</td></tr>
<tr class="memdesc:ab73f409fbca4369979fd0966614bf466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sign-, or zero-extend the value 'v' to occupy 64 bits.  <a href="#ab73f409fbca4369979fd0966614bf466">More...</a><br /></td></tr>
<tr class="separator:ab73f409fbca4369979fd0966614bf466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8055a8933883a1ba50a059a3edba1faf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8055a8933883a1ba50a059a3edba1faf">readbytes</a> (int h, <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> *res, int size, bool mf)</td></tr>
<tr class="memdesc:a8055a8933883a1ba50a059a3edba1faf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read at most 4 bytes from file.  <a href="#a8055a8933883a1ba50a059a3edba1faf">More...</a><br /></td></tr>
<tr class="separator:a8055a8933883a1ba50a059a3edba1faf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65f7acee9458c297dab692697ba52acd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a65f7acee9458c297dab692697ba52acd">writebytes</a> (int h, <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> l, int size, bool mf)</td></tr>
<tr class="memdesc:a65f7acee9458c297dab692697ba52acd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write at most 4 bytes to file.  <a href="#a65f7acee9458c297dab692697ba52acd">More...</a><br /></td></tr>
<tr class="separator:a65f7acee9458c297dab692697ba52acd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cfaaa6d8c42a61ad442098346a71f7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4cfaaa6d8c42a61ad442098346a71f7e">read2bytes</a> (int h, <a class="el" href="pro_8h.html#a05f6b0ae8f6a6e135b0e290c25fe0e4e">uint16</a> *res, bool mf)</td></tr>
<tr class="memdesc:a4cfaaa6d8c42a61ad442098346a71f7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a 2 byte entity from a file.  <a href="#a4cfaaa6d8c42a61ad442098346a71f7e">More...</a><br /></td></tr>
<tr class="separator:a4cfaaa6d8c42a61ad442098346a71f7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab29570d44c212315993dd9736de03558"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab29570d44c212315993dd9736de03558"></a>
<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a> (<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> x)</td></tr>
<tr class="memdesc:ab29570d44c212315993dd9736de03558"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value. <br /></td></tr>
<tr class="separator:ab29570d44c212315993dd9736de03558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54a82bd22ccc00a89d2b5bbfa79bead1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a54a82bd22ccc00a89d2b5bbfa79bead1">swap16</a> (<a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a> x)</td></tr>
<tr class="memdesc:a54a82bd22ccc00a89d2b5bbfa79bead1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value.  <a href="#a54a82bd22ccc00a89d2b5bbfa79bead1">More...</a><br /></td></tr>
<tr class="separator:a54a82bd22ccc00a89d2b5bbfa79bead1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a435fea957a4f3f87b0d4b183cc286e90"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a435fea957a4f3f87b0d4b183cc286e90">swap_value</a> (void *dst, const void *src, int size)</td></tr>
<tr class="memdesc:a435fea957a4f3f87b0d4b183cc286e90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap endianness of a given value in memory.  <a href="#a435fea957a4f3f87b0d4b183cc286e90">More...</a><br /></td></tr>
<tr class="separator:a435fea957a4f3f87b0d4b183cc286e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4692ee30c39996bea9dff58672ff74d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4692ee30c39996bea9dff58672ff74d2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>reloc_value</b> (void *value, int size, <a class="el" href="pro_8h.html#ac29a387cc69c0d1abb2f2ef05dad1a6f">adiff_t</a> delta, bool mf)</td></tr>
<tr class="separator:a4692ee30c39996bea9dff58672ff74d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc8d0eeac106017d7447fd2c69710121"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acc8d0eeac106017d7447fd2c69710121">rotate_left</a> (<a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> x, int count, size_t bits, size_t offset)</td></tr>
<tr class="memdesc:acc8d0eeac106017d7447fd2c69710121"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate left - can be used to rotate a value to the right if the count is negative.  <a href="#acc8d0eeac106017d7447fd2c69710121">More...</a><br /></td></tr>
<tr class="separator:acc8d0eeac106017d7447fd2c69710121"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277f6b371dd9d6704eb69bf41eb71481"><td class="memTemplParams" colspan="2"><a class="anchor" id="a277f6b371dd9d6704eb69bf41eb71481"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a277f6b371dd9d6704eb69bf41eb71481"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a277f6b371dd9d6704eb69bf41eb71481">qswap</a> (T &amp;a, T &amp;b)</td></tr>
<tr class="memdesc:a277f6b371dd9d6704eb69bf41eb71481"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap 2 objects of the same type using memory copies. <br /></td></tr>
<tr class="separator:a277f6b371dd9d6704eb69bf41eb71481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138f907840f458d7f81be38acedabde5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a138f907840f458d7f81be38acedabde5"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a138f907840f458d7f81be38acedabde5">qalloc_or_throw</a> (size_t size)</td></tr>
<tr class="memdesc:a138f907840f458d7f81be38acedabde5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="pro_8h.html#a2806c6575b58eb42bb0d2b96f92fc39b" title="System independent malloc. ">qalloc()</a> 'size' bytes, and throw a "not enough memory" error if failed <br /></td></tr>
<tr class="separator:a138f907840f458d7f81be38acedabde5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1084d74e6fc1676259982ac1f4abf057"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1084d74e6fc1676259982ac1f4abf057"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1084d74e6fc1676259982ac1f4abf057">qrealloc_or_throw</a> (void *ptr, size_t size)</td></tr>
<tr class="memdesc:a1084d74e6fc1676259982ac1f4abf057"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="pro_8h.html#a8820d5cc099745032331eeb5acedc06e" title="System independent realloc. ">qrealloc()</a> 'ptr' by 'size', and throw a "not enough memory" error if failed <br /></td></tr>
<tr class="separator:a1084d74e6fc1676259982ac1f4abf057"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a577328d386c616047f7fa85263433d5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a577328d386c616047f7fa85263433d5c">qvector_reserve</a> (void *vec, void *old, size_t cnt, size_t elsize)</td></tr>
<tr class="memdesc:a577328d386c616047f7fa85263433d5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change capacity of given qvector.  <a href="#a577328d386c616047f7fa85263433d5c">More...</a><br /></td></tr>
<tr class="separator:a577328d386c616047f7fa85263433d5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e45a87c365b2c527c9104ab08788ab0"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a9e45a87c365b2c527c9104ab08788ab0"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9e45a87c365b2c527c9104ab08788ab0">lexcompare</a> (const T &amp;a, const T &amp;b)</td></tr>
<tr class="memdesc:a9e45a87c365b2c527c9104ab08788ab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard lexical comparison.  <a href="#a9e45a87c365b2c527c9104ab08788ab0">More...</a><br /></td></tr>
<tr class="separator:a9e45a87c365b2c527c9104ab08788ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6de7451013440529ab09bddd991960de"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a6de7451013440529ab09bddd991960de"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6de7451013440529ab09bddd991960de">lexcompare_vectors</a> (const T &amp;a, const T &amp;b)</td></tr>
<tr class="memdesc:a6de7451013440529ab09bddd991960de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lexical comparison of two vectors.  <a href="#a6de7451013440529ab09bddd991960de">More...</a><br /></td></tr>
<tr class="separator:a6de7451013440529ab09bddd991960de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadf95964a5783b7d41a9d83be4ddf00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adadf95964a5783b7d41a9d83be4ddf00"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>relocate_relobj</b> (struct <a class="el" href="structrelobj__t.html">relobj_t</a> *_relobj, <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> ea, bool mf)</td></tr>
<tr class="separator:adadf95964a5783b7d41a9d83be4ddf00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d76b0cbdd0016e7cfd98cd42fbde81d"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6d76b0cbdd0016e7cfd98cd42fbde81d"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a6d76b0cbdd0016e7cfd98cd42fbde81d"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a> (const T &amp;a, const T &amp;b)</td></tr>
<tr class="memdesc:a6d76b0cbdd0016e7cfd98cd42fbde81d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template to compare any 2 values of the same type. Returns -1/0/1. <br /></td></tr>
<tr class="separator:a6d76b0cbdd0016e7cfd98cd42fbde81d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fc4e64819af9cfc256e8923cb1357ad"><td class="memTemplParams" colspan="2"><a class="anchor" id="a1fc4e64819af9cfc256e8923cb1357ad"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a1fc4e64819af9cfc256e8923cb1357ad"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><b>compare</b> (const <a class="el" href="classqvector.html">qvector</a>&lt; T &gt; &amp;a, const <a class="el" href="classqvector.html">qvector</a>&lt; T &gt; &amp;b)</td></tr>
<tr class="separator:a1fc4e64819af9cfc256e8923cb1357ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a59764717cd8c035141202ed6b9216a"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7a59764717cd8c035141202ed6b9216a"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a7a59764717cd8c035141202ed6b9216a"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><b>compare</b> (const <a class="el" href="classqlist.html">qlist</a>&lt; T &gt; &amp;a, const <a class="el" href="classqlist.html">qlist</a>&lt; T &gt; &amp;b)</td></tr>
<tr class="separator:a7a59764717cd8c035141202ed6b9216a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02bb3241571258f28a3a50da2f7ac5c7"><td class="memTemplParams" colspan="2"><a class="anchor" id="a02bb3241571258f28a3a50da2f7ac5c7"></a>
template&lt;class T , class U &gt; </td></tr>
<tr class="memitem:a02bb3241571258f28a3a50da2f7ac5c7"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><b>compare</b> (const std::pair&lt; T, U &gt; &amp;a, const std::pair&lt; T, U &gt; &amp;b)</td></tr>
<tr class="separator:a02bb3241571258f28a3a50da2f7ac5c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcf694eb9532c762539e794b92ee232e"><td class="memTemplParams" colspan="2"><a class="anchor" id="adcf694eb9532c762539e794b92ee232e"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:adcf694eb9532c762539e794b92ee232e"><td class="memTemplItemLeft" align="right" valign="top">int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#adcf694eb9532c762539e794b92ee232e">compare_containers</a> (const T &amp;l, const T &amp;r)</td></tr>
<tr class="memdesc:adcf694eb9532c762539e794b92ee232e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template to compare any 2 containers of the same type. Returns -1/0/1. <br /></td></tr>
<tr class="separator:adcf694eb9532c762539e794b92ee232e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337fb9062596c727faa1a084b3ac677f"><td class="memTemplParams" colspan="2"><a class="anchor" id="a337fb9062596c727faa1a084b3ac677f"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a337fb9062596c727faa1a084b3ac677f"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#a337fb9062596c727faa1a084b3ac677f">align_up</a> (T val, int elsize)</td></tr>
<tr class="memdesc:a337fb9062596c727faa1a084b3ac677f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Align element up to nearest boundary. <br /></td></tr>
<tr class="separator:a337fb9062596c727faa1a084b3ac677f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab993ac342c68015fdf84426cef066369"><td class="memTemplParams" colspan="2"><a class="anchor" id="ab993ac342c68015fdf84426cef066369"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:ab993ac342c68015fdf84426cef066369"><td class="memTemplItemLeft" align="right" valign="top">T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab993ac342c68015fdf84426cef066369">align_down</a> (T val, int elsize)</td></tr>
<tr class="memdesc:ab993ac342c68015fdf84426cef066369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Align element down to nearest boundary. <br /></td></tr>
<tr class="separator:ab993ac342c68015fdf84426cef066369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3afa0586d3fb7a30d0b0a3bf8f4bdc68"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3afa0586d3fb7a30d0b0a3bf8f4bdc68"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3afa0586d3fb7a30d0b0a3bf8f4bdc68">base64_encode</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *output, const void *input, size_t size)</td></tr>
<tr class="memdesc:a3afa0586d3fb7a30d0b0a3bf8f4bdc68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode base64. <br /></td></tr>
<tr class="separator:a3afa0586d3fb7a30d0b0a3bf8f4bdc68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1debbc49691c4bd98960efd6d62eff8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab1debbc49691c4bd98960efd6d62eff8">base64_decode</a> (<a class="el" href="classbytevec__t.html">bytevec_t</a> *output, const char *input, size_t size)</td></tr>
<tr class="memdesc:ab1debbc49691c4bd98960efd6d62eff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode base64.  <a href="#ab1debbc49691c4bd98960efd6d62eff8">More...</a><br /></td></tr>
<tr class="separator:ab1debbc49691c4bd98960efd6d62eff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe11d9e0e16f57ff96ebc5c2f65fb655"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#abe11d9e0e16f57ff96ebc5c2f65fb655">replace_tabs</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *str, int tabsize)</td></tr>
<tr class="memdesc:abe11d9e0e16f57ff96ebc5c2f65fb655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert tabulations to spaces.  <a href="#abe11d9e0e16f57ff96ebc5c2f65fb655">More...</a><br /></td></tr>
<tr class="separator:abe11d9e0e16f57ff96ebc5c2f65fb655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1e6165c701ac9fb7d20958aff93f012"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf1e6165c701ac9fb7d20958aff93f012"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__c__str__conv.html#gaf1e6165c701ac9fb7d20958aff93f012">str2user</a> (char *dst, const char *src, size_t dstsize)</td></tr>
<tr class="memdesc:gaf1e6165c701ac9fb7d20958aff93f012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a user representation. <br /></td></tr>
<tr class="separator:gaf1e6165c701ac9fb7d20958aff93f012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad65d8d0c79f8761d8551ca2b85436d59"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad65d8d0c79f8761d8551ca2b85436d59"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__c__str__conv.html#gad65d8d0c79f8761d8551ca2b85436d59">user2str</a> (char *dst, const char *src, size_t dstsize)</td></tr>
<tr class="memdesc:gad65d8d0c79f8761d8551ca2b85436d59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make an internal representation. <br /></td></tr>
<tr class="separator:gad65d8d0c79f8761d8551ca2b85436d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf07498922444526a1697fc58456dfc25"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf07498922444526a1697fc58456dfc25"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__c__str__conv.html#gaf07498922444526a1697fc58456dfc25">back_char</a> (const char *&amp;p)</td></tr>
<tr class="memdesc:gaf07498922444526a1697fc58456dfc25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate char after '\'. <br /></td></tr>
<tr class="separator:gaf07498922444526a1697fc58456dfc25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf90e18cf75dd11e9428f1048bceef522"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf90e18cf75dd11e9428f1048bceef522"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__c__str__conv.html#gaf90e18cf75dd11e9428f1048bceef522">qstr2user</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *dst, const char *src, int nsyms=-1)</td></tr>
<tr class="memdesc:gaf90e18cf75dd11e9428f1048bceef522"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="group__c__str__conv.html#gaf1e6165c701ac9fb7d20958aff93f012" title="Make a user representation. ">str2user()</a> <br /></td></tr>
<tr class="separator:gaf90e18cf75dd11e9428f1048bceef522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a6a4b8c73d68691fed78aa8bbc2c61d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1a6a4b8c73d68691fed78aa8bbc2c61d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>qstr2user</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *dst, const <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> &amp;src)</td></tr>
<tr class="separator:ga1a6a4b8c73d68691fed78aa8bbc2c61d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86d364d8894c49d87500393a832f2ae1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga86d364d8894c49d87500393a832f2ae1"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__c__str__conv.html#ga86d364d8894c49d87500393a832f2ae1">user2qstr</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *dst, const <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> &amp;src)</td></tr>
<tr class="memdesc:ga86d364d8894c49d87500393a832f2ae1"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="group__c__str__conv.html#gad65d8d0c79f8761d8551ca2b85436d59" title="Make an internal representation. ">user2str()</a> <br /></td></tr>
<tr class="separator:ga86d364d8894c49d87500393a832f2ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ee918b56f592ac4e45de9a0f71c9b8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0ee918b56f592ac4e45de9a0f71c9b8e">is_valid_utf8</a> (const char *in)</td></tr>
<tr class="memdesc:a0ee918b56f592ac4e45de9a0f71c9b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does byte sequence consist of valid UTF-8-encoded codepoints?  <a href="#a0ee918b56f592ac4e45de9a0f71c9b8e">More...</a><br /></td></tr>
<tr class="separator:a0ee918b56f592ac4e45de9a0f71c9b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0f5ce48eff3c5b9dde53efccbb66606"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0f5ce48eff3c5b9dde53efccbb66606"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae0f5ce48eff3c5b9dde53efccbb66606">utf8_utf16</a> (<a class="el" href="pro_8h.html#ae1af89f7fa627fd5a720250e14256908">qwstring</a> *out, const char *in, int nsyms=-1)</td></tr>
<tr class="memdesc:ae0f5ce48eff3c5b9dde53efccbb66606"><td class="mdescLeft">&#160;</td><td class="mdescRight">UTF-8 -&gt; UTF-16. <br /></td></tr>
<tr class="separator:ae0f5ce48eff3c5b9dde53efccbb66606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad89193f3e26115cc0cd364c86bfd652f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad89193f3e26115cc0cd364c86bfd652f"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad89193f3e26115cc0cd364c86bfd652f">utf16_utf8</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *in, int nsyms=-1)</td></tr>
<tr class="memdesc:ad89193f3e26115cc0cd364c86bfd652f"><td class="mdescLeft">&#160;</td><td class="mdescRight">UTF-16 -&gt; UTF-8. <br /></td></tr>
<tr class="separator:ad89193f3e26115cc0cd364c86bfd652f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac08de96f994904782b20c195dc64f3b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac08de96f994904782b20c195dc64f3b2">idb_utf8</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *in, int nsyms=-1, int flags=0)</td></tr>
<tr class="memdesc:ac08de96f994904782b20c195dc64f3b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">IDB default C string encoding -&gt; UTF-8.  <a href="#ac08de96f994904782b20c195dc64f3b2">More...</a><br /></td></tr>
<tr class="separator:ac08de96f994904782b20c195dc64f3b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eab991585ca5b7ee7f070cf5b32a3af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5eab991585ca5b7ee7f070cf5b32a3af"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>change_codepage</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *in, int incp, int outcp)</td></tr>
<tr class="separator:a5eab991585ca5b7ee7f070cf5b32a3af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a116dd05017fe9a57df9540a8931abdf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a116dd05017fe9a57df9540a8931abdf2"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><b>scr_utf8</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *in)</td></tr>
<tr class="separator:a116dd05017fe9a57df9540a8931abdf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9840f928d6d39b9c646f35e1e696a8e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9840f928d6d39b9c646f35e1e696a8e9"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><b>utf8_scr</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *in)</td></tr>
<tr class="separator:a9840f928d6d39b9c646f35e1e696a8e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0d4f43c17799e449ef5873d0449ce94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0d4f43c17799e449ef5873d0449ce94"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool&#160;</td><td class="memItemRight" valign="bottom"><b>acp_utf8</b> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *out, const char *in)</td></tr>
<tr class="separator:ab0d4f43c17799e449ef5873d0449ce94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade44d76070c45aaf65ea629a870aa6f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade44d76070c45aaf65ea629a870aa6f1"></a>
<a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>utf8_wchar16</b> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b0, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b1)</td></tr>
<tr class="separator:ade44d76070c45aaf65ea629a870aa6f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ba936cdb23e5304b4c2c30972cbcc59"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ba936cdb23e5304b4c2c30972cbcc59"></a>
<a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>utf8_wchar16</b> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b0, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b2)</td></tr>
<tr class="separator:a9ba936cdb23e5304b4c2c30972cbcc59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138981d5f40d3da5cc5a6e00252362f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a138981d5f40d3da5cc5a6e00252362f0"></a>
<a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>utf8_wchar32</b> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b0, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b2, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> b3)</td></tr>
<tr class="separator:a138981d5f40d3da5cc5a6e00252362f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ee8d4744f8f9ea52b908f7f59813512"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ee8d4744f8f9ea52b908f7f59813512"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8ee8d4744f8f9ea52b908f7f59813512">get_utf8_char</a> (const char **pptr)</td></tr>
<tr class="memdesc:a8ee8d4744f8f9ea52b908f7f59813512"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read one UTF-8 character from string. if error, return BADUCP. <br /></td></tr>
<tr class="separator:a8ee8d4744f8f9ea52b908f7f59813512"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fcf1d47dcb9f3ccb3506388d3604ab0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2fcf1d47dcb9f3ccb3506388d3604ab0">skip_utf8</a> (const char **putf8, size_t n)</td></tr>
<tr class="memdesc:a2fcf1d47dcb9f3ccb3506388d3604ab0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advance by n codepoints into the UTF-8 buffer.  <a href="#a2fcf1d47dcb9f3ccb3506388d3604ab0">More...</a><br /></td></tr>
<tr class="separator:a2fcf1d47dcb9f3ccb3506388d3604ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91ee95acb00f15fbd341d33e81970f13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a91ee95acb00f15fbd341d33e81970f13">put_utf8_char</a> (char *out, <a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a> cp)</td></tr>
<tr class="memdesc:a91ee95acb00f15fbd341d33e81970f13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode the codepoint into a UTF-8 byte sequence, and add terminating zero.  <a href="#a91ee95acb00f15fbd341d33e81970f13">More...</a><br /></td></tr>
<tr class="separator:a91ee95acb00f15fbd341d33e81970f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b69a25114e4c25ae57513926e3bb7c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b69a25114e4c25ae57513926e3bb7c7"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qustrlen</b> (const char *utf8)</td></tr>
<tr class="separator:a7b69a25114e4c25ae57513926e3bb7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae52a058abfcbb3f763e7b1beaab6f733"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae52a058abfcbb3f763e7b1beaab6f733">convert_encoding</a> (<a class="el" href="classbytevec__t.html">bytevec_t</a> *out, const char *fromcode, const char *tocode, const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *indata, <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> insize, DEFARG(int flags, 0))</td></tr>
<tr class="memdesc:ae52a058abfcbb3f763e7b1beaab6f733"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert data from encoding fromcode into tocode.  <a href="#ae52a058abfcbb3f763e7b1beaab6f733">More...</a><br /></td></tr>
<tr class="separator:ae52a058abfcbb3f763e7b1beaab6f733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a844708c6b55cab0e4bee4c66463dd35c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a844708c6b55cab0e4bee4c66463dd35c"></a>
<a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>convert_encoding</b> (<a class="el" href="classbytevec__t.html">bytevec_t</a> *out, const char *fromcode, const char *tocode, const <a class="el" href="classbytevec__t.html">bytevec_t</a> *indata, DEFARG(int flags, 0))</td></tr>
<tr class="separator:a844708c6b55cab0e4bee4c66463dd35c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e1f8e01bb2f7b93ad1bd6b51797c2fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2e1f8e01bb2f7b93ad1bd6b51797c2fd">parse_command_line</a> (<a class="el" href="pro_8h.html#a823b67c620f6cdca97e1d969ea4a9b02">qstrvec_t</a> *args, <a class="el" href="pro_8h.html#a3d227a0129097f194ff30166ba653d02">channel_redirs_t</a> *redirs, const char *cmdline, int flags)</td></tr>
<tr class="memdesc:a2e1f8e01bb2f7b93ad1bd6b51797c2fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a space separated string (escaping with backslash is supported).  <a href="#a2e1f8e01bb2f7b93ad1bd6b51797c2fd">More...</a><br /></td></tr>
<tr class="separator:a2e1f8e01bb2f7b93ad1bd6b51797c2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ba3e060917a3e5b8402d2157607803c"><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5ba3e060917a3e5b8402d2157607803c">expand_argv</a> (int *p_argc, int argc, const char *const argv[])</td></tr>
<tr class="memdesc:a5ba3e060917a3e5b8402d2157607803c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy and expand command line arguments.  <a href="#a5ba3e060917a3e5b8402d2157607803c">More...</a><br /></td></tr>
<tr class="separator:a5ba3e060917a3e5b8402d2157607803c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3414fce0fc99ab9d2f82334183a866d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3414fce0fc99ab9d2f82334183a866d"></a>
<a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa3414fce0fc99ab9d2f82334183a866d">free_argv</a> (int argc, char **argv)</td></tr>
<tr class="memdesc:aa3414fce0fc99ab9d2f82334183a866d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free 'argc' elements of 'argv'. <br /></td></tr>
<tr class="separator:aa3414fce0fc99ab9d2f82334183a866d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac85b202fd5a03476ee1af8696c9de487"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac85b202fd5a03476ee1af8696c9de487">quote_cmdline_arg</a> (<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *arg)</td></tr>
<tr class="memdesc:ac85b202fd5a03476ee1af8696c9de487"><td class="mdescLeft">&#160;</td><td class="mdescRight">Quote a command line argument if it contains escape characters.  <a href="#ac85b202fd5a03476ee1af8696c9de487">More...</a><br /></td></tr>
<tr class="separator:ac85b202fd5a03476ee1af8696c9de487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e47f39d16ac90b4e158db16114e7a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a75e47f39d16ac90b4e158db16114e7a0">parse_dbgopts</a> (struct <a class="el" href="structinstant__dbgopts__t.html">instant_dbgopts_t</a> *ido, const char *r_switch)</td></tr>
<tr class="memdesc:a75e47f39d16ac90b4e158db16114e7a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse the -r command line switch (for instant debugging).  <a href="#a75e47f39d16ac90b4e158db16114e7a0">More...</a><br /></td></tr>
<tr class="separator:a75e47f39d16ac90b4e158db16114e7a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c392bfd687547ec1a2d755281179e0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0c392bfd687547ec1a2d755281179e0c">launch_process</a> (const <a class="el" href="structlaunch__process__params__t.html">launch_process_params_t</a> &amp;lpp, <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *errbuf=NULL)</td></tr>
<tr class="memdesc:a0c392bfd687547ec1a2d755281179e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Launch the specified process in parallel.  <a href="#a0c392bfd687547ec1a2d755281179e0c">More...</a><br /></td></tr>
<tr class="separator:a0c392bfd687547ec1a2d755281179e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c629c6befea4d059905c0d4672ffce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2c629c6befea4d059905c0d4672ffce7">term_process</a> (void *handle)</td></tr>
<tr class="memdesc:a2c629c6befea4d059905c0d4672ffce7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forcibly terminate a running process.  <a href="#a2c629c6befea4d059905c0d4672ffce7">More...</a><br /></td></tr>
<tr class="separator:a2c629c6befea4d059905c0d4672ffce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bbea1080e3dafb9fa04cd2bc1446532"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2bbea1080e3dafb9fa04cd2bc1446532">qwait_timed</a> (int *status, int child, int flags, int timeout_ms)</td></tr>
<tr class="memdesc:a2bbea1080e3dafb9fa04cd2bc1446532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for state changes in a child process (UNIX only).  <a href="#a2bbea1080e3dafb9fa04cd2bc1446532">More...</a><br /></td></tr>
<tr class="separator:a2bbea1080e3dafb9fa04cd2bc1446532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8133390ab4d182d5735f10e2ddf93c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa8133390ab4d182d5735f10e2ddf93c4">check_process_exit</a> (void *handle, int *exit_code, DEFARG(int msecs,-1))</td></tr>
<tr class="memdesc:aa8133390ab4d182d5735f10e2ddf93c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether process has terminated or not.  <a href="#aa8133390ab4d182d5735f10e2ddf93c4">More...</a><br /></td></tr>
<tr class="separator:aa8133390ab4d182d5735f10e2ddf93c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07c66801ba4bb5f1a1e68c379d4283c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> enum <a class="el" href="pro_8h.html#a665bbcc021b383d33fd7854024ac464c">tty_control_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a07c66801ba4bb5f1a1e68c379d4283c2">is_control_tty</a> (int fd)</td></tr>
<tr class="memdesc:a07c66801ba4bb5f1a1e68c379d4283c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty).  <a href="#a07c66801ba4bb5f1a1e68c379d4283c2">More...</a><br /></td></tr>
<tr class="separator:a07c66801ba4bb5f1a1e68c379d4283c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b930155eb685212db11fb14d2444313"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2b930155eb685212db11fb14d2444313">qdetach_tty</a> (void)</td></tr>
<tr class="memdesc:a2b930155eb685212db11fb14d2444313"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the current terminal is the controlling terminal of the calling process, give up this controlling terminal.  <a href="#a2b930155eb685212db11fb14d2444313">More...</a><br /></td></tr>
<tr class="separator:a2b930155eb685212db11fb14d2444313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60084934decaa09c664279c8546eda4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a60084934decaa09c664279c8546eda4c">qcontrol_tty</a> (void)</td></tr>
<tr class="memdesc:a60084934decaa09c664279c8546eda4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make the current terminal the controlling terminal of the calling process.  <a href="#a60084934decaa09c664279c8546eda4c">More...</a><br /></td></tr>
<tr class="separator:a60084934decaa09c664279c8546eda4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3d468877f6b93e13a8ed3f76b1a5ce1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3d468877f6b93e13a8ed3f76b1a5ce1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>OPAQUE_HANDLE</b> (qthread_t)</td></tr>
<tr class="separator:ac3d468877f6b93e13a8ed3f76b1a5ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb5a6fa456824b1c1af7903c6f462039"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb5a6fa456824b1c1af7903c6f462039"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> qthread_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aeb5a6fa456824b1c1af7903c6f462039">qthread_create</a> (<a class="el" href="pro_8h.html#a8a8fcacda1bd30d443b0a6b3e6b72d50">qthread_cb_t</a> *thread_cb, void *ud)</td></tr>
<tr class="memdesc:aeb5a6fa456824b1c1af7903c6f462039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a thread and return a thread handle. <br /></td></tr>
<tr class="separator:aeb5a6fa456824b1c1af7903c6f462039"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff96fef70b30b85e18918ddc57d23748"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff96fef70b30b85e18918ddc57d23748"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aff96fef70b30b85e18918ddc57d23748">qthread_free</a> (qthread_t q)</td></tr>
<tr class="memdesc:aff96fef70b30b85e18918ddc57d23748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a thread resource (does not kill the thread) <br /></td></tr>
<tr class="separator:aff96fef70b30b85e18918ddc57d23748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa326e7b21c65bd4c263ebfa88bcbc79e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa326e7b21c65bd4c263ebfa88bcbc79e"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa326e7b21c65bd4c263ebfa88bcbc79e">qthread_join</a> (qthread_t q)</td></tr>
<tr class="memdesc:aa326e7b21c65bd4c263ebfa88bcbc79e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait a thread until it terminates. <br /></td></tr>
<tr class="separator:aa326e7b21c65bd4c263ebfa88bcbc79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb144299b790f3d111e2c40422c712f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb144299b790f3d111e2c40422c712f2"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acb144299b790f3d111e2c40422c712f2">qthread_kill</a> (qthread_t q)</td></tr>
<tr class="memdesc:acb144299b790f3d111e2c40422c712f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forcefully kill a thread (calls pthread_cancel under unix) <br /></td></tr>
<tr class="separator:acb144299b790f3d111e2c40422c712f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade61baa9f965692544c4b34541156e03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade61baa9f965692544c4b34541156e03"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> qthread_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ade61baa9f965692544c4b34541156e03">qthread_self</a> (void)</td></tr>
<tr class="memdesc:ade61baa9f965692544c4b34541156e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current thread. Must call <a class="el" href="pro_8h.html#aff96fef70b30b85e18918ddc57d23748" title="Free a thread resource (does not kill the thread) ">qthread_free()</a> to free it! <br /></td></tr>
<tr class="separator:ade61baa9f965692544c4b34541156e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60729cf35ae84037a12b913dd85e8fc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60729cf35ae84037a12b913dd85e8fc0"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a60729cf35ae84037a12b913dd85e8fc0">qthread_same</a> (qthread_t q)</td></tr>
<tr class="memdesc:a60729cf35ae84037a12b913dd85e8fc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the current thread the same as 'q'? <br /></td></tr>
<tr class="separator:a60729cf35ae84037a12b913dd85e8fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a155c7c687ecea1742cfa191de31cdbda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a155c7c687ecea1742cfa191de31cdbda"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a155c7c687ecea1742cfa191de31cdbda">is_main_thread</a> (void)</td></tr>
<tr class="memdesc:a155c7c687ecea1742cfa191de31cdbda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Are we running in the main thread? <br /></td></tr>
<tr class="separator:a155c7c687ecea1742cfa191de31cdbda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c6818cd6e13fd43c76fe4a714f33d00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c6818cd6e13fd43c76fe4a714f33d00"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0c6818cd6e13fd43c76fe4a714f33d00">qsetenv</a> (const char *varname, const char *value)</td></tr>
<tr class="memdesc:a0c6818cd6e13fd43c76fe4a714f33d00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread safe function to work with the environment. <br /></td></tr>
<tr class="separator:a0c6818cd6e13fd43c76fe4a714f33d00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8ba72892569a9b71dd5ea7f94e6819c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab8ba72892569a9b71dd5ea7f94e6819c">qgetenv</a> (const char *varname, DEFARG(<a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *buf, NULL))</td></tr>
<tr class="memdesc:ab8ba72892569a9b71dd5ea7f94e6819c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread safe function to work with the environment.  <a href="#ab8ba72892569a9b71dd5ea7f94e6819c">More...</a><br /></td></tr>
<tr class="separator:ab8ba72892569a9b71dd5ea7f94e6819c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48845cf496265dca880619c3bb26ce21"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a48845cf496265dca880619c3bb26ce21">OPAQUE_HANDLE</a> (qsemaphore_t)</td></tr>
<tr class="memdesc:a48845cf496265dca880619c3bb26ce21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semaphore.  <a href="#a48845cf496265dca880619c3bb26ce21">More...</a><br /></td></tr>
<tr class="separator:a48845cf496265dca880619c3bb26ce21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bbc94d6ddaba86f5364bca33d297ecd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bbc94d6ddaba86f5364bca33d297ecd"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> qsemaphore_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7bbc94d6ddaba86f5364bca33d297ecd">qsem_create</a> (const char *name, int init_count)</td></tr>
<tr class="memdesc:a7bbc94d6ddaba86f5364bca33d297ecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new semaphore. <br /></td></tr>
<tr class="separator:a7bbc94d6ddaba86f5364bca33d297ecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e78011a136767fdbcfd64928bb902f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e78011a136767fdbcfd64928bb902f5"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5e78011a136767fdbcfd64928bb902f5">qsem_free</a> (qsemaphore_t sem)</td></tr>
<tr class="memdesc:a5e78011a136767fdbcfd64928bb902f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a semaphore. <br /></td></tr>
<tr class="separator:a5e78011a136767fdbcfd64928bb902f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d1950973aaaa78f29b55bf0b88f8449"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d1950973aaaa78f29b55bf0b88f8449"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2d1950973aaaa78f29b55bf0b88f8449">qsem_post</a> (qsemaphore_t sem)</td></tr>
<tr class="memdesc:a2d1950973aaaa78f29b55bf0b88f8449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock a semaphore. <br /></td></tr>
<tr class="separator:a2d1950973aaaa78f29b55bf0b88f8449"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8c3af045e14be6517b564088a76814f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8c3af045e14be6517b564088a76814f"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac8c3af045e14be6517b564088a76814f">qsem_wait</a> (qsemaphore_t sem, int timeout_ms)</td></tr>
<tr class="memdesc:ac8c3af045e14be6517b564088a76814f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock and decrement a semaphore. timeout = -1 means block indefinitely. <br /></td></tr>
<tr class="separator:ac8c3af045e14be6517b564088a76814f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d7a6e6701d1e4760dd4ee09a9368be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a33d7a6e6701d1e4760dd4ee09a9368be"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a33d7a6e6701d1e4760dd4ee09a9368be">OPAQUE_HANDLE</a> (qmutex_t)</td></tr>
<tr class="memdesc:a33d7a6e6701d1e4760dd4ee09a9368be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex. <br /></td></tr>
<tr class="separator:a33d7a6e6701d1e4760dd4ee09a9368be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cc3ccad74085595a2cd398a9f195665"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cc3ccad74085595a2cd398a9f195665"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8cc3ccad74085595a2cd398a9f195665">qmutex_free</a> (qmutex_t m)</td></tr>
<tr class="memdesc:a8cc3ccad74085595a2cd398a9f195665"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a mutex. <br /></td></tr>
<tr class="separator:a8cc3ccad74085595a2cd398a9f195665"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3d08e13176f36f496938e90529028ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa3d08e13176f36f496938e90529028ea"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> qmutex_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa3d08e13176f36f496938e90529028ea">qmutex_create</a> (void)</td></tr>
<tr class="memdesc:aa3d08e13176f36f496938e90529028ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new mutex. <br /></td></tr>
<tr class="separator:aa3d08e13176f36f496938e90529028ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8df924ddb42c0879791c0da35ff4f911"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8df924ddb42c0879791c0da35ff4f911"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8df924ddb42c0879791c0da35ff4f911">qmutex_lock</a> (qmutex_t m)</td></tr>
<tr class="memdesc:a8df924ddb42c0879791c0da35ff4f911"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock a mutex. <br /></td></tr>
<tr class="separator:a8df924ddb42c0879791c0da35ff4f911"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a31032cf0282b901a5633f5874dc71a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a31032cf0282b901a5633f5874dc71a"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7a31032cf0282b901a5633f5874dc71a">qmutex_unlock</a> (qmutex_t m)</td></tr>
<tr class="memdesc:a7a31032cf0282b901a5633f5874dc71a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unlock a mutex. <br /></td></tr>
<tr class="separator:a7a31032cf0282b901a5633f5874dc71a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad036316f67d88e89c7d34984465b3a4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad036316f67d88e89c7d34984465b3a4d">qpipe_create</a> (<a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> handles[2])</td></tr>
<tr class="memdesc:ad036316f67d88e89c7d34984465b3a4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a pipe.  <a href="#ad036316f67d88e89c7d34984465b3a4d">More...</a><br /></td></tr>
<tr class="separator:ad036316f67d88e89c7d34984465b3a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab98cfc3a4848032b878c3fc727262852"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab98cfc3a4848032b878c3fc727262852">qpipe_read</a> (<a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> handle, void *buf, size_t size)</td></tr>
<tr class="memdesc:ab98cfc3a4848032b878c3fc727262852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from a pipe.  <a href="#ab98cfc3a4848032b878c3fc727262852">More...</a><br /></td></tr>
<tr class="separator:ab98cfc3a4848032b878c3fc727262852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3a2d42e00ddd0843d3ab416e03dfad6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae3a2d42e00ddd0843d3ab416e03dfad6">qpipe_write</a> (<a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> handle, const void *buf, size_t size)</td></tr>
<tr class="memdesc:ae3a2d42e00ddd0843d3ab416e03dfad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write to a pipe.  <a href="#ae3a2d42e00ddd0843d3ab416e03dfad6">More...</a><br /></td></tr>
<tr class="separator:ae3a2d42e00ddd0843d3ab416e03dfad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af823cc70190082a02826f571b4420664"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af823cc70190082a02826f571b4420664">qpipe_close</a> (<a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> handle)</td></tr>
<tr class="memdesc:af823cc70190082a02826f571b4420664"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close a pipe.  <a href="#af823cc70190082a02826f571b4420664">More...</a><br /></td></tr>
<tr class="separator:af823cc70190082a02826f571b4420664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ca258578f1f14e0d046a80fc39336b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2ca258578f1f14e0d046a80fc39336b2">qwait_for_handles</a> (int *idx, const <a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> *handles, int n, <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> write_bitmask, int timeout_ms)</td></tr>
<tr class="memdesc:a2ca258578f1f14e0d046a80fc39336b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for file/socket/pipe handles.  <a href="#a2ca258578f1f14e0d046a80fc39336b2">More...</a><br /></td></tr>
<tr class="separator:a2ca258578f1f14e0d046a80fc39336b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">strlen</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Get the length of the given string </p>
</div></td></tr>
<tr class="memitem:abac9c544891b0218492a6f23ef4de685"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abac9c544891b0218492a6f23ef4de685"></a>
size_t <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrlen</b> (const char *s)</td></tr>
<tr class="separator:abac9c544891b0218492a6f23ef4de685"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1ce2fcbf43a2ccc783501bc577f8dd0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1ce2fcbf43a2ccc783501bc577f8dd0"></a>
size_t <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrlen</b> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s)</td></tr>
<tr class="separator:ad1ce2fcbf43a2ccc783501bc577f8dd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79b730904fb4dba9ab74a25892f591ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79b730904fb4dba9ab74a25892f591ef"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrlen</b> (const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s)</td></tr>
<tr class="separator:a79b730904fb4dba9ab74a25892f591ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">strcmp</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Lexical comparison of strings.</p>
<dl class="section return"><dt>Returns</dt><dd>0 if two strings are identical &gt; 0 if 's1' is larger than 's2' &lt; 0 if 's2' is larger than 's1' otherwise return first nonzero comparison between chars in 's1' and 's2' </dd></dl>
</div></td></tr>
<tr class="memitem:a4bc76b01b74e698261f71e44528d2ced"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4bc76b01b74e698261f71e44528d2ced"></a>
int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrcmp</b> (const char *s1, const char *s2)</td></tr>
<tr class="separator:a4bc76b01b74e698261f71e44528d2ced"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20cb30f29ab9387748261bd5c36fd8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae20cb30f29ab9387748261bd5c36fd8d"></a>
int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrcmp</b> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s2)</td></tr>
<tr class="separator:ae20cb30f29ab9387748261bd5c36fd8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19cc98a1f07c85f6b4862f18ab2c0f0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19cc98a1f07c85f6b4862f18ab2c0f0c"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrcmp</b> (const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s1, const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s2)</td></tr>
<tr class="separator:a19cc98a1f07c85f6b4862f18ab2c0f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">strstr</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Find a string within another string.</p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the first occurrence of 's2' within 's1', NULL if s2 is not found in s1 </dd></dl>
</div></td></tr>
<tr class="memitem:adef58905662b8d693655531e62e7a002"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adef58905662b8d693655531e62e7a002"></a>
const char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrstr</b> (const char *s1, const char *s2)</td></tr>
<tr class="separator:adef58905662b8d693655531e62e7a002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5c180a686a5f97b23ea70da3204890f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5c180a686a5f97b23ea70da3204890f"></a>
const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrstr</b> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s2)</td></tr>
<tr class="separator:aa5c180a686a5f97b23ea70da3204890f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">strchr</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Find a character within a string.</p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the first occurrence of 'c' within 's1', NULL if c is not found in s1 </dd></dl>
</div></td></tr>
<tr class="memitem:a415f2829336b390595a3e5badf37ebfd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a415f2829336b390595a3e5badf37ebfd"></a>
char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (char *s1, char c)</td></tr>
<tr class="separator:a415f2829336b390595a3e5badf37ebfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab38b23b05ac81a616e6ed81970b6a69c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab38b23b05ac81a616e6ed81970b6a69c"></a>
const char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (const char *s1, char c)</td></tr>
<tr class="separator:ab38b23b05ac81a616e6ed81970b6a69c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1fd47a247d4c363d26fd2c66bacb4e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1fd47a247d4c363d26fd2c66bacb4e8"></a>
<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> c)</td></tr>
<tr class="separator:ab1fd47a247d4c363d26fd2c66bacb4e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e4eb5b83d42e003c2c58ae2ac6a9923"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e4eb5b83d42e003c2c58ae2ac6a9923"></a>
const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> c)</td></tr>
<tr class="separator:a1e4eb5b83d42e003c2c58ae2ac6a9923"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4a98b5e5e583031a601f6c17f503af3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4a98b5e5e583031a601f6c17f503af3"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s1, <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> c)</td></tr>
<tr class="separator:ab4a98b5e5e583031a601f6c17f503af3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63b877abecb21ed2e7e8530f3fbf69be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63b877abecb21ed2e7e8530f3fbf69be"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrchr</b> (<a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s1, <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> c)</td></tr>
<tr class="separator:a63b877abecb21ed2e7e8530f3fbf69be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">qstrrchr</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Find a last occurrence of a character within a string.</p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the last occurrence of 'c' within 's1', NULL if c is not found in s1 </dd></dl>
</div></td></tr>
<tr class="memitem:a35bfb61e0f8f2560d21d64ad6428bded"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a35bfb61e0f8f2560d21d64ad6428bded"></a>
const char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (const char *s1, char c)</td></tr>
<tr class="separator:a35bfb61e0f8f2560d21d64ad6428bded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae206653a3f139575b0927211d820819d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae206653a3f139575b0927211d820819d"></a>
char *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (char *s1, char c)</td></tr>
<tr class="separator:ae206653a3f139575b0927211d820819d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adebe2cb3a930fe0daad00cdeca953760"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adebe2cb3a930fe0daad00cdeca953760"></a>
const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> c)</td></tr>
<tr class="separator:adebe2cb3a930fe0daad00cdeca953760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04ac4190d1a95b2878daab46ba38afad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04ac4190d1a95b2878daab46ba38afad"></a>
<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (<a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *s1, <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> c)</td></tr>
<tr class="separator:a04ac4190d1a95b2878daab46ba38afad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed0a636241f8cb729db5c9232dc333ae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed0a636241f8cb729db5c9232dc333ae"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *<a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (const <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s1, <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> c)</td></tr>
<tr class="separator:aed0a636241f8cb729db5c9232dc333ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a077314d403d3f92316f699cc718cad51"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a077314d403d3f92316f699cc718cad51"></a>
<a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><b>qstrrchr</b> (<a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> *s1, <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> c)</td></tr>
<tr class="separator:a077314d403d3f92316f699cc718cad51"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceinterval"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceinterval.html">interval</a></td></tr>
<tr class="memdesc:namespaceinterval"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions to work with intervals. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a4f56c6c22937f8cd0caadb330c96ab20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f56c6c22937f8cd0caadb330c96ab20"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4f56c6c22937f8cd0caadb330c96ab20">IDA_SDK_VERSION</a>&#160;&#160;&#160;700</td></tr>
<tr class="memdesc:a4f56c6c22937f8cd0caadb330c96ab20"><td class="mdescLeft">&#160;</td><td class="mdescRight">IDA SDK v7.0. <br /></td></tr>
<tr class="separator:a4f56c6c22937f8cd0caadb330c96ab20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40850744ffbf865c251786ae4836824"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae40850744ffbf865c251786ae4836824"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae40850744ffbf865c251786ae4836824">__X86__</a></td></tr>
<tr class="memdesc:ae40850744ffbf865c251786ae4836824"><td class="mdescLeft">&#160;</td><td class="mdescRight">x86 processor by default <br /></td></tr>
<tr class="separator:ae40850744ffbf865c251786ae4836824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32a3539b997bf64e3959184fc918abc6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32a3539b997bf64e3959184fc918abc6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a32a3539b997bf64e3959184fc918abc6">BADMEMSIZE</a>&#160;&#160;&#160;0x7FFFFFFFul</td></tr>
<tr class="memdesc:a32a3539b997bf64e3959184fc918abc6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid memory size. <br /></td></tr>
<tr class="separator:a32a3539b997bf64e3959184fc918abc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01f4f3154ae42da937b6ddcb1e4d6170"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01f4f3154ae42da937b6ddcb1e4d6170"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a01f4f3154ae42da937b6ddcb1e4d6170">ENUM_SIZE</a>(t)&#160;&#160;&#160;: t</td></tr>
<tr class="memdesc:a01f4f3154ae42da937b6ddcb1e4d6170"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compiler-independent way to specify size of enum values. <br /></td></tr>
<tr class="separator:a01f4f3154ae42da937b6ddcb1e4d6170"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7bef5d85e3dcd73eef56ad39ffc84a9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac7bef5d85e3dcd73eef56ad39ffc84a9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac7bef5d85e3dcd73eef56ad39ffc84a9">WIN32_LEAN_AND_MEAN</a></td></tr>
<tr class="memdesc:ac7bef5d85e3dcd73eef56ad39ffc84a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">compile faster <br /></td></tr>
<tr class="separator:ac7bef5d85e3dcd73eef56ad39ffc84a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc0338a8945a12d80f620b21637496b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc0338a8945a12d80f620b21637496b5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>STL_SUPPORT_PRESENT</b></td></tr>
<tr class="separator:abc0338a8945a12d80f620b21637496b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95e1d92b2619a326b2e86600f3d23100"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95e1d92b2619a326b2e86600f3d23100"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a95e1d92b2619a326b2e86600f3d23100">EXTERNC</a>&#160;&#160;&#160;extern &quot;C&quot;</td></tr>
<tr class="memdesc:a95e1d92b2619a326b2e86600f3d23100"><td class="mdescLeft">&#160;</td><td class="mdescRight">specify C linkage <br /></td></tr>
<tr class="separator:a95e1d92b2619a326b2e86600f3d23100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae990eacd438069f0807057f73f72a0e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae990eacd438069f0807057f73f72a0e2">C_INCLUDE</a></td></tr>
<tr class="memdesc:ae990eacd438069f0807057f73f72a0e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper for 'extern "C" {}' statements  <a href="#ae990eacd438069f0807057f73f72a0e2">More...</a><br /></td></tr>
<tr class="separator:ae990eacd438069f0807057f73f72a0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9c64f103d2b6ed1029fd06d99767c20"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae9c64f103d2b6ed1029fd06d99767c20">C_INCLUDE_END</a>&#160;&#160;&#160;}</td></tr>
<tr class="memdesc:ae9c64f103d2b6ed1029fd06d99767c20"><td class="mdescLeft">&#160;</td><td class="mdescRight">helper for 'extern "C" {}' statements  <a href="#ae9c64f103d2b6ed1029fd06d99767c20">More...</a><br /></td></tr>
<tr class="separator:ae9c64f103d2b6ed1029fd06d99767c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eb6f9e0395b47b8d5e3eeae4fe0c116"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2eb6f9e0395b47b8d5e3eeae4fe0c116"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a>&#160;&#160;&#160;inline</td></tr>
<tr class="memdesc:a2eb6f9e0395b47b8d5e3eeae4fe0c116"><td class="mdescLeft">&#160;</td><td class="mdescRight">inline keyword for c++ <br /></td></tr>
<tr class="separator:a2eb6f9e0395b47b8d5e3eeae4fe0c116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5189100144828825ca4369c28c1261d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5189100144828825ca4369c28c1261d1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5189100144828825ca4369c28c1261d1">MAXSTR</a>&#160;&#160;&#160;1024</td></tr>
<tr class="memdesc:a5189100144828825ca4369c28c1261d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum string size <br /></td></tr>
<tr class="separator:a5189100144828825ca4369c28c1261d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf57198a203812ebb59e240105e33d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cf57198a203812ebb59e240105e33d2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8cf57198a203812ebb59e240105e33d2">SMAXSTR</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a3394b9c72c9ccb7bf6f207f02d74a8e3">QSTRINGIZE</a>(<a class="el" href="pro_8h.html#a5189100144828825ca4369c28c1261d1">MAXSTR</a>)</td></tr>
<tr class="memdesc:a8cf57198a203812ebb59e240105e33d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">get <a class="el" href="pro_8h.html#a5189100144828825ca4369c28c1261d1" title="maximum string size ">MAXSTR</a> as a string <br /></td></tr>
<tr class="separator:a8cf57198a203812ebb59e240105e33d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf374a08f6699901dfe30beebcc4ddcd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf374a08f6699901dfe30beebcc4ddcd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adf374a08f6699901dfe30beebcc4ddcd">NT_CDECL</a>&#160;&#160;&#160;__cdecl</td></tr>
<tr class="memdesc:adf374a08f6699901dfe30beebcc4ddcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Some NT functions require __cdecl calling convention. <br /></td></tr>
<tr class="separator:adf374a08f6699901dfe30beebcc4ddcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e8a42306d8e67cb94ca31c3956ee78"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1e8a42306d8e67cb94ca31c3956ee78"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac1e8a42306d8e67cb94ca31c3956ee78">DEPRECATED</a>&#160;&#160;&#160;__declspec(deprecated)</td></tr>
<tr class="memdesc:ac1e8a42306d8e67cb94ca31c3956ee78"><td class="mdescLeft">&#160;</td><td class="mdescRight">identifies parts of the IDA API that are considered deprecated <br /></td></tr>
<tr class="separator:ac1e8a42306d8e67cb94ca31c3956ee78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1728270d73c5d1598de1fd691762eb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1728270d73c5d1598de1fd691762eb1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa1728270d73c5d1598de1fd691762eb1">NORETURN</a>&#160;&#160;&#160;__declspec(noreturn)</td></tr>
<tr class="memdesc:aa1728270d73c5d1598de1fd691762eb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">function does not return <br /></td></tr>
<tr class="separator:aa1728270d73c5d1598de1fd691762eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d525cf4d116b2fe4ecc00222b256f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d525cf4d116b2fe4ecc00222b256f1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a36d525cf4d116b2fe4ecc00222b256f1">PACKED</a></td></tr>
<tr class="memdesc:a36d525cf4d116b2fe4ecc00222b256f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">type is packed <br /></td></tr>
<tr class="separator:a36d525cf4d116b2fe4ecc00222b256f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42a5a0f673a39dffe9f920b3a65f4726"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42a5a0f673a39dffe9f920b3a65f4726"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a42a5a0f673a39dffe9f920b3a65f4726">AS_PRINTF</a>(format_idx,  varg_idx)</td></tr>
<tr class="memdesc:a42a5a0f673a39dffe9f920b3a65f4726"><td class="mdescLeft">&#160;</td><td class="mdescRight">function accepts printf-style format and args <br /></td></tr>
<tr class="separator:a42a5a0f673a39dffe9f920b3a65f4726"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aeb7f590515616a701be71b5a308a1d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8aeb7f590515616a701be71b5a308a1d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8aeb7f590515616a701be71b5a308a1d">AS_SCANF</a>(format_idx,  varg_idx)</td></tr>
<tr class="memdesc:a8aeb7f590515616a701be71b5a308a1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">function accepts scanf-style format and args <br /></td></tr>
<tr class="separator:a8aeb7f590515616a701be71b5a308a1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a646972e87fa873eb9da1adf5e8651c18"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a646972e87fa873eb9da1adf5e8651c18"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a646972e87fa873eb9da1adf5e8651c18">GCC_DIAG_OFF</a>(x)</td></tr>
<tr class="memdesc:a646972e87fa873eb9da1adf5e8651c18"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable a specific GCC warning for the following code <br /></td></tr>
<tr class="separator:a646972e87fa873eb9da1adf5e8651c18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a449bfc1762077f4e7698b86e187f05a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a449bfc1762077f4e7698b86e187f05a4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a449bfc1762077f4e7698b86e187f05a4">GCC_DIAG_ON</a>(x)</td></tr>
<tr class="memdesc:a449bfc1762077f4e7698b86e187f05a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable or restore a specific GCC warning for the following code <br /></td></tr>
<tr class="separator:a449bfc1762077f4e7698b86e187f05a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fa907600e6cc20f050cc1049b27c599"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0fa907600e6cc20f050cc1049b27c599">__MF__</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:a0fa907600e6cc20f050cc1049b27c599"><td class="mdescLeft">&#160;</td><td class="mdescRight">byte sex of our platform (Most significant byte First).  <a href="#a0fa907600e6cc20f050cc1049b27c599">More...</a><br /></td></tr>
<tr class="separator:a0fa907600e6cc20f050cc1049b27c599"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62d520277e808d0fb65d4914257aced0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62d520277e808d0fb65d4914257aced0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a62d520277e808d0fb65d4914257aced0">qnotused</a>(x)  &#160;&#160;&#160;(void)x</td></tr>
<tr class="memdesc:a62d520277e808d0fb65d4914257aced0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to avoid of message 'Parameter x is never used'. <br /></td></tr>
<tr class="separator:a62d520277e808d0fb65d4914257aced0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b677d47f5d6507956ff520db8bf0356"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b677d47f5d6507956ff520db8bf0356"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>QUNUSED</b></td></tr>
<tr class="separator:a5b677d47f5d6507956ff520db8bf0356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c341d7a89532ce28aff03703ab02d22"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c341d7a89532ce28aff03703ab02d22"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2c341d7a89532ce28aff03703ab02d22">va_argi</a>(va,  type)&#160;&#160;&#160;va_arg(va, type)</td></tr>
<tr class="memdesc:a2c341d7a89532ce28aff03703ab02d22"><td class="mdescLeft">&#160;</td><td class="mdescRight">GNU C complains about some data types in va_arg because they are promoted to int and proposes to replace them by int. <br /></td></tr>
<tr class="separator:a2c341d7a89532ce28aff03703ab02d22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0c714f80f492b18de41f37405002ab3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0c714f80f492b18de41f37405002ab3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae0c714f80f492b18de41f37405002ab3">CONST_CAST</a>(x)  &#160;&#160;&#160;const_cast&lt;x&gt;</td></tr>
<tr class="memdesc:ae0c714f80f492b18de41f37405002ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">cast a const to non-const <br /></td></tr>
<tr class="separator:ae0c714f80f492b18de41f37405002ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a945109e3acf5c6c422e0c53c642570"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a945109e3acf5c6c422e0c53c642570"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8a945109e3acf5c6c422e0c53c642570">_QSTRINGIZE</a>(x)&#160;&#160;&#160;#x</td></tr>
<tr class="memdesc:a8a945109e3acf5c6c422e0c53c642570"><td class="mdescLeft">&#160;</td><td class="mdescRight">return x as a string. See <a class="el" href="pro_8h.html#a8cf57198a203812ebb59e240105e33d2" title="get MAXSTR as a string ">SMAXSTR</a> for example <br /></td></tr>
<tr class="separator:a8a945109e3acf5c6c422e0c53c642570"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3394b9c72c9ccb7bf6f207f02d74a8e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3394b9c72c9ccb7bf6f207f02d74a8e3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3394b9c72c9ccb7bf6f207f02d74a8e3">QSTRINGIZE</a>(x)  &#160;&#160;&#160;<a class="el" href="pro_8h.html#a8a945109e3acf5c6c422e0c53c642570">_QSTRINGIZE</a>(x)</td></tr>
<tr class="memdesc:a3394b9c72c9ccb7bf6f207f02d74a8e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8a945109e3acf5c6c422e0c53c642570" title="return x as a string. See SMAXSTR for example ">_QSTRINGIZE</a> <br /></td></tr>
<tr class="separator:a3394b9c72c9ccb7bf6f207f02d74a8e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6505e7ff3b129d8b17258304886fd133"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6505e7ff3b129d8b17258304886fd133"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;&#160;&#160;__stdcall</td></tr>
<tr class="memdesc:a6505e7ff3b129d8b17258304886fd133"><td class="mdescLeft">&#160;</td><td class="mdescRight">specifies __stdcall calling convention <br /></td></tr>
<tr class="separator:a6505e7ff3b129d8b17258304886fd133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a176294e75f953787714b9d08ffa89adf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a176294e75f953787714b9d08ffa89adf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a></td></tr>
<tr class="memdesc:a176294e75f953787714b9d08ffa89adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">functions marked with this keyword are available as part of the IDA SDK <br /></td></tr>
<tr class="separator:a176294e75f953787714b9d08ffa89adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ddba56b40c4be92718f8059abf51147"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ddba56b40c4be92718f8059abf51147"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a95e1d92b2619a326b2e86600f3d23100">EXTERNC</a></td></tr>
<tr class="memdesc:a8ddba56b40c4be92718f8059abf51147"><td class="mdescLeft">&#160;</td><td class="mdescRight">specifies c linkage <br /></td></tr>
<tr class="separator:a8ddba56b40c4be92718f8059abf51147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dcf39ba902e647b34f7d676b8897a2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dcf39ba902e647b34f7d676b8897a2f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0dcf39ba902e647b34f7d676b8897a2f">ida_export_data</a></td></tr>
<tr class="memdesc:a0dcf39ba902e647b34f7d676b8897a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">data items marked with this keyword are available as part of the IDA SDK <br /></td></tr>
<tr class="separator:a0dcf39ba902e647b34f7d676b8897a2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac356388cde75589399b907f5fa7e0dab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac356388cde75589399b907f5fa7e0dab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac356388cde75589399b907f5fa7e0dab">ida_module_data</a></td></tr>
<tr class="memdesc:ac356388cde75589399b907f5fa7e0dab"><td class="mdescLeft">&#160;</td><td class="mdescRight">identifies a data item that will be exported <br /></td></tr>
<tr class="separator:ac356388cde75589399b907f5fa7e0dab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4457e1ec12de0b5038adc7283ed5919f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4457e1ec12de0b5038adc7283ed5919f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4457e1ec12de0b5038adc7283ed5919f">ida_local</a></td></tr>
<tr class="memdesc:a4457e1ec12de0b5038adc7283ed5919f"><td class="mdescLeft">&#160;</td><td class="mdescRight">identifies a non-public type definition <br /></td></tr>
<tr class="separator:a4457e1ec12de0b5038adc7283ed5919f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b8a30e03520c28a7ea014d6a12f9065"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b8a30e03520c28a7ea014d6a12f9065"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ida_override</b>&#160;&#160;&#160;override</td></tr>
<tr class="separator:a8b8a30e03520c28a7ea014d6a12f9065"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb0b22a01885ebdb9ac572343bbc4dab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb0b22a01885ebdb9ac572343bbc4dab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a></td></tr>
<tr class="memdesc:acb0b22a01885ebdb9ac572343bbc4dab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions callable from any thread are marked with this keyword. <br /></td></tr>
<tr class="separator:acb0b22a01885ebdb9ac572343bbc4dab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbc25345a39784031ea891c317ab6f4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbc25345a39784031ea891c317ab6f4e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>strtoull</b>&#160;&#160;&#160;_strtoui64</td></tr>
<tr class="separator:acbc25345a39784031ea891c317ab6f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6f1f06ac1df747adddf21e648974728"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6f1f06ac1df747adddf21e648974728"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab6f1f06ac1df747adddf21e648974728">FMT_64</a>&#160;&#160;&#160;&quot;I64&quot;</td></tr>
<tr class="memdesc:ab6f1f06ac1df747adddf21e648974728"><td class="mdescLeft">&#160;</td><td class="mdescRight">compiler-specific printf format specifier for 64-bit numbers <br /></td></tr>
<tr class="separator:ab6f1f06ac1df747adddf21e648974728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b8186daa426b5144112cab6285f48ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b8186daa426b5144112cab6285f48ca"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4b8186daa426b5144112cab6285f48ca">FMT_Z</a>&#160;&#160;&#160;&quot;u&quot;</td></tr>
<tr class="memdesc:a4b8186daa426b5144112cab6285f48ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">compiler-specific printf format specifier for size_t <br /></td></tr>
<tr class="separator:a4b8186daa426b5144112cab6285f48ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cc43805c8eaacc3c4e7161b5dc17ebc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cc43805c8eaacc3c4e7161b5dc17ebc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0cc43805c8eaacc3c4e7161b5dc17ebc">FMT_ZS</a>&#160;&#160;&#160;&quot;d&quot;</td></tr>
<tr class="memdesc:a0cc43805c8eaacc3c4e7161b5dc17ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">compiler-specific printf format specifier for ssize_t <br /></td></tr>
<tr class="separator:a0cc43805c8eaacc3c4e7161b5dc17ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f209400911645e16cc1a5a9d45e7f3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f209400911645e16cc1a5a9d45e7f3a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2f209400911645e16cc1a5a9d45e7f3a">SVAL_MIN</a>&#160;&#160;&#160;INT_MIN</td></tr>
<tr class="memdesc:a2f209400911645e16cc1a5a9d45e7f3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">minimum value for an object of type int <br /></td></tr>
<tr class="separator:a2f209400911645e16cc1a5a9d45e7f3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2965237514ff3f613cf70edfb419ee9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2965237514ff3f613cf70edfb419ee9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af2965237514ff3f613cf70edfb419ee9">SVAL_MAX</a>&#160;&#160;&#160;INT_MAX</td></tr>
<tr class="memdesc:af2965237514ff3f613cf70edfb419ee9"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum value for an object of type int <br /></td></tr>
<tr class="separator:af2965237514ff3f613cf70edfb419ee9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75c251ecd7e57603fef98d751373470"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af75c251ecd7e57603fef98d751373470"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af75c251ecd7e57603fef98d751373470">FMT_EA</a>&#160;&#160;&#160;&quot;&quot;</td></tr>
<tr class="memdesc:af75c251ecd7e57603fef98d751373470"><td class="mdescLeft">&#160;</td><td class="mdescRight">format specifier for <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> values <br /></td></tr>
<tr class="separator:af75c251ecd7e57603fef98d751373470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff05cb78593a3fff27cdcc22040332a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aff05cb78593a3fff27cdcc22040332a7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DEFARG</b>(decl,  val)&#160;&#160;&#160;decl = val</td></tr>
<tr class="separator:aff05cb78593a3fff27cdcc22040332a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63a7c1cde5fb0cf0d0023d55c742dd4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63a7c1cde5fb0cf0d0023d55c742dd4f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a63a7c1cde5fb0cf0d0023d55c742dd4f">BADADDR</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>(-1)</td></tr>
<tr class="memdesc:a63a7c1cde5fb0cf0d0023d55c742dd4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">this value is used for 'bad address' <br /></td></tr>
<tr class="separator:a63a7c1cde5fb0cf0d0023d55c742dd4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a893ddf307fae0a3bbca667ee917cddc7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a893ddf307fae0a3bbca667ee917cddc7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a893ddf307fae0a3bbca667ee917cddc7">BADSEL</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a633a07e2920351503da14c0adcd3edfd">sel_t</a>(-1)</td></tr>
<tr class="memdesc:a893ddf307fae0a3bbca667ee917cddc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">'bad selector' value <br /></td></tr>
<tr class="separator:a893ddf307fae0a3bbca667ee917cddc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ae75d34f73b9e691bd16aaddb897e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42ae75d34f73b9e691bd16aaddb897e5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a">int64</a></td></tr>
<tr class="memdesc:a42ae75d34f73b9e691bd16aaddb897e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">file offset <br /></td></tr>
<tr class="separator:a42ae75d34f73b9e691bd16aaddb897e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad3a54ef5fb260160ec7493483246022"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aad3a54ef5fb260160ec7493483246022"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aad3a54ef5fb260160ec7493483246022">for</a>&#160;&#160;&#160;if(0); else for</td></tr>
<tr class="memdesc:aad3a54ef5fb260160ec7493483246022"><td class="mdescLeft">&#160;</td><td class="mdescRight">MSVC &lt;= 1200 is not compliant to the ANSI standard. <br /></td></tr>
<tr class="separator:aad3a54ef5fb260160ec7493483246022"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95be41bd6cf74b2cc935923eef55435d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95be41bd6cf74b2cc935923eef55435d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a95be41bd6cf74b2cc935923eef55435d">eOk</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:a95be41bd6cf74b2cc935923eef55435d"><td class="mdescLeft">&#160;</td><td class="mdescRight">no error <br /></td></tr>
<tr class="separator:a95be41bd6cf74b2cc935923eef55435d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd8d30c9504462b2fb97fef82904481a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd8d30c9504462b2fb97fef82904481a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acd8d30c9504462b2fb97fef82904481a">eOS</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:acd8d30c9504462b2fb97fef82904481a"><td class="mdescLeft">&#160;</td><td class="mdescRight">os error, see errno <br /></td></tr>
<tr class="separator:acd8d30c9504462b2fb97fef82904481a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ac43aed136a4c56866f2bf821bd3bb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4ac43aed136a4c56866f2bf821bd3bb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa4ac43aed136a4c56866f2bf821bd3bb">eDiskFull</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:aa4ac43aed136a4c56866f2bf821bd3bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">disk full <br /></td></tr>
<tr class="separator:aa4ac43aed136a4c56866f2bf821bd3bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a90e43549f41d0c86715d4460fbd8a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a90e43549f41d0c86715d4460fbd8a3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9a90e43549f41d0c86715d4460fbd8a3">eReadError</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:a9a90e43549f41d0c86715d4460fbd8a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">read error <br /></td></tr>
<tr class="separator:a9a90e43549f41d0c86715d4460fbd8a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdd553720aada64a1e707f300f28c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7fdd553720aada64a1e707f300f28c7a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7fdd553720aada64a1e707f300f28c7a">eFileTooLarge</a>&#160;&#160;&#160;4</td></tr>
<tr class="memdesc:a7fdd553720aada64a1e707f300f28c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">file too large <br /></td></tr>
<tr class="separator:a7fdd553720aada64a1e707f300f28c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1697942e391d0cfae231ee6b79f13ca1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1697942e391d0cfae231ee6b79f13ca1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1697942e391d0cfae231ee6b79f13ca1">ZZZ</a>&#160;&#160;&#160;msg(&quot;%s:%d\n&quot;, __FILE__, __LINE__)</td></tr>
<tr class="memdesc:a1697942e391d0cfae231ee6b79f13ca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">debug print <br /></td></tr>
<tr class="separator:a1697942e391d0cfae231ee6b79f13ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefaead9521fa4ebbfc7add536c5b6625"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aefaead9521fa4ebbfc7add536c5b6625">BPT</a>&#160;&#160;&#160;__debugbreak()</td></tr>
<tr class="memdesc:aefaead9521fa4ebbfc7add536c5b6625"><td class="mdescLeft">&#160;</td><td class="mdescRight">trigger a breakpoint from IDA.  <a href="#aefaead9521fa4ebbfc7add536c5b6625">More...</a><br /></td></tr>
<tr class="separator:aefaead9521fa4ebbfc7add536c5b6625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3cfff664a1e0e8020db5499cbd30b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c3cfff664a1e0e8020db5499cbd30b3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3c3cfff664a1e0e8020db5499cbd30b3">__CASSERT_N0__</a>(l)&#160;&#160;&#160;COMPILE_TIME_ASSERT_ ## l</td></tr>
<tr class="memdesc:a3c3cfff664a1e0e8020db5499cbd30b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">compile time assertion <br /></td></tr>
<tr class="separator:a3c3cfff664a1e0e8020db5499cbd30b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc2713c0c5edd461a15627df15a4e333"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc2713c0c5edd461a15627df15a4e333"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acc2713c0c5edd461a15627df15a4e333">__CASSERT_N1__</a>(l)&#160;&#160;&#160;<a class="el" href="pro_8h.html#a3c3cfff664a1e0e8020db5499cbd30b3">__CASSERT_N0__</a>(l)</td></tr>
<tr class="memdesc:acc2713c0c5edd461a15627df15a4e333"><td class="mdescLeft">&#160;</td><td class="mdescRight">compile time assertion <br /></td></tr>
<tr class="separator:acc2713c0c5edd461a15627df15a4e333"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af05b25df2bfe8ba758585210ba85b627"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af05b25df2bfe8ba758585210ba85b627"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__CASSERT_N2__</b>(l)&#160;&#160;&#160;dummy_var_ ## <a class="el" href="pro_8h.html#a3c3cfff664a1e0e8020db5499cbd30b3">__CASSERT_N0__</a>(l)</td></tr>
<tr class="separator:af05b25df2bfe8ba758585210ba85b627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d9d6de40a1b45dd13d31e023f33dae8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d9d6de40a1b45dd13d31e023f33dae8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9d9d6de40a1b45dd13d31e023f33dae8">CASSERT</a>(cnd)&#160;&#160;&#160;typedef char <a class="el" href="pro_8h.html#acc2713c0c5edd461a15627df15a4e333">__CASSERT_N1__</a>(__LINE__)[(cnd) ? 1 : -1] QUNUSED</td></tr>
<tr class="memdesc:a9d9d6de40a1b45dd13d31e023f33dae8"><td class="mdescLeft">&#160;</td><td class="mdescRight">results in a compile error if the cnd is not true <br /></td></tr>
<tr class="separator:a9d9d6de40a1b45dd13d31e023f33dae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a996cec2e6c48c78338b59fb58062cc39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a996cec2e6c48c78338b59fb58062cc39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a996cec2e6c48c78338b59fb58062cc39">CASSERT0</a>(cnd)&#160;&#160;&#160;(sizeof(char[1 - 2*!(cnd)]) - 1)</td></tr>
<tr class="memdesc:a996cec2e6c48c78338b59fb58062cc39"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns 0 if cnd is true - otherwise results in a compile error <br /></td></tr>
<tr class="separator:a996cec2e6c48c78338b59fb58062cc39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89eca4309e9d7a0f6e26f7fb1998ccf7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a89eca4309e9d7a0f6e26f7fb1998ccf7">INTERR</a>(code)&#160;&#160;&#160;do { if ( <a class="el" href="pro_8h.html#a634763e97c3f75cfe9d667a6f434f3ad">under_debugger</a> ) <a class="el" href="pro_8h.html#aefaead9521fa4ebbfc7add536c5b6625">BPT</a>; <a class="el" href="pro_8h.html#ae72a90f168783073acf8ab0e83711e60">interr</a>(code); } while(1)</td></tr>
<tr class="memdesc:a89eca4309e9d7a0f6e26f7fb1998ccf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Show internal error message and terminate execution abnormally.  <a href="#a89eca4309e9d7a0f6e26f7fb1998ccf7">More...</a><br /></td></tr>
<tr class="separator:a89eca4309e9d7a0f6e26f7fb1998ccf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88e58e907d114e8c7a53e8ff047a995e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88e58e907d114e8c7a53e8ff047a995e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a88e58e907d114e8c7a53e8ff047a995e">QASSERT</a>(code,  cond)&#160;&#160;&#160;do if ( !(cond) ) <a class="el" href="pro_8h.html#a89eca4309e9d7a0f6e26f7fb1998ccf7">INTERR</a>(code); while (0)</td></tr>
<tr class="memdesc:a88e58e907d114e8c7a53e8ff047a995e"><td class="mdescLeft">&#160;</td><td class="mdescRight">run time assertion <br /></td></tr>
<tr class="separator:a88e58e907d114e8c7a53e8ff047a995e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45857eeac5251dfa03b208d6c1c3df48"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a45857eeac5251dfa03b208d6c1c3df48"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a45857eeac5251dfa03b208d6c1c3df48">QBUFCHECK</a>(buf,  size,  src)&#160;&#160;&#160;ida_fill_buffer(buf, size, src, __FILE__, __LINE__)</td></tr>
<tr class="memdesc:a45857eeac5251dfa03b208d6c1c3df48"><td class="mdescLeft">&#160;</td><td class="mdescRight">run time assertion <br /></td></tr>
<tr class="separator:a45857eeac5251dfa03b208d6c1c3df48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b03e2c732e209af4bd4991394503231"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b03e2c732e209af4bd4991394503231"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5b03e2c732e209af4bd4991394503231">qnew</a>(t)            &#160;&#160;&#160;((t*)<a class="el" href="pro_8h.html#a2806c6575b58eb42bb0d2b96f92fc39b">qalloc</a>(sizeof(t)))</td></tr>
<tr class="memdesc:a5b03e2c732e209af4bd4991394503231"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a new object in memory <br /></td></tr>
<tr class="separator:a5b03e2c732e209af4bd4991394503231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1ad276ec82e503ab036325e112238d7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af1ad276ec82e503ab036325e112238d7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af1ad276ec82e503ab036325e112238d7">qnewarray</a>(t,  n)&#160;&#160;&#160;use_qalloc_array</td></tr>
<tr class="memdesc:af1ad276ec82e503ab036325e112238d7"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="pro_8h.html#a5f504e6fb075c97db80fc40357fa5e75" title="Use this class to avoid integer overflows when allocating arrays. ">qalloc_array()</a> is safer than qnewarray <br /></td></tr>
<tr class="separator:af1ad276ec82e503ab036325e112238d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2db7dc6c4bac9bf358fda4bb89e6fe0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2db7dc6c4bac9bf358fda4bb89e6fe0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac2db7dc6c4bac9bf358fda4bb89e6fe0">qnumber</a>(array)&#160;&#160;&#160;_countof(array)</td></tr>
<tr class="memdesc:ac2db7dc6c4bac9bf358fda4bb89e6fe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">determine capacity of an array <br /></td></tr>
<tr class="separator:ac2db7dc6c4bac9bf358fda4bb89e6fe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebf3f15b9cdee349f7345406110e834d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebf3f15b9cdee349f7345406110e834d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aebf3f15b9cdee349f7345406110e834d">qoffsetof</a>&#160;&#160;&#160;offsetof</td></tr>
<tr class="memdesc:aebf3f15b9cdee349f7345406110e834d"><td class="mdescLeft">&#160;</td><td class="mdescRight">gcc complains about offsetof() - we had to make our version <br /></td></tr>
<tr class="separator:aebf3f15b9cdee349f7345406110e834d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad36243a66d6b30f74fd72dd0f78d7264"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad36243a66d6b30f74fd72dd0f78d7264"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad36243a66d6b30f74fd72dd0f78d7264">va_copy</a>(dst,  src)&#160;&#160;&#160;dst = src</td></tr>
<tr class="memdesc:ad36243a66d6b30f74fd72dd0f78d7264"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy a va_list <br /></td></tr>
<tr class="separator:ad36243a66d6b30f74fd72dd0f78d7264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af487c56158e97e4b5a16655ab1c6f878"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af487c56158e97e4b5a16655ab1c6f878"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af487c56158e97e4b5a16655ab1c6f878">set_vva</a>(va2,  vp)&#160;&#160;&#160;<a class="el" href="pro_8h.html#ad36243a66d6b30f74fd72dd0f78d7264">va_copy</a>(va2, va_arg(vp, va_list))</td></tr>
<tr class="memdesc:af487c56158e97e4b5a16655ab1c6f878"><td class="mdescLeft">&#160;</td><td class="mdescRight">extracts a va_list passed as a variadic function argument <br /></td></tr>
<tr class="separator:af487c56158e97e4b5a16655ab1c6f878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16a19b1831112e876b010468ec15916f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16a19b1831112e876b010468ec15916f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a16a19b1831112e876b010468ec15916f">strnicmp</a>&#160;&#160;&#160;_strnicmp</td></tr>
<tr class="memdesc:a16a19b1831112e876b010468ec15916f"><td class="mdescLeft">&#160;</td><td class="mdescRight">see 'VS posix names' <br /></td></tr>
<tr class="separator:a16a19b1831112e876b010468ec15916f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e0be90a3757e352f42612d09a7d1aa5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e0be90a3757e352f42612d09a7d1aa5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4e0be90a3757e352f42612d09a7d1aa5">stricmp</a>&#160;&#160;&#160;_stricmp</td></tr>
<tr class="memdesc:a4e0be90a3757e352f42612d09a7d1aa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">see 'VS posix names' <br /></td></tr>
<tr class="separator:a4e0be90a3757e352f42612d09a7d1aa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c76c079d1e0dea93d871d02e407150e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c76c079d1e0dea93d871d02e407150e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3c76c079d1e0dea93d871d02e407150e">strcpy</a>&#160;&#160;&#160;dont_use_strcpy</td></tr>
<tr class="memdesc:a3c76c079d1e0dea93d871d02e407150e"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#af74a1e4b6b49709fc024d286568c2878" title="A safer strncpy - makes sure that there is a terminating zero. ">qstrncpy()</a> <br /></td></tr>
<tr class="separator:a3c76c079d1e0dea93d871d02e407150e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c50a69fd5090325ab2ec15e20297e52"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c50a69fd5090325ab2ec15e20297e52"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5c50a69fd5090325ab2ec15e20297e52">stpcpy</a>&#160;&#160;&#160;dont_use_stpcpy</td></tr>
<tr class="memdesc:a5c50a69fd5090325ab2ec15e20297e52"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a50baa551d4fa0f4fcf77543b7a265324" title="A safer stpncpy - returns pointer to the end of the destination nb: ssize_t(dstsize) must be > 0...">qstpncpy()</a> <br /></td></tr>
<tr class="separator:a5c50a69fd5090325ab2ec15e20297e52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ad0cad79c46e9a6e2bc4b77ac50e271"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ad0cad79c46e9a6e2bc4b77ac50e271"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5ad0cad79c46e9a6e2bc4b77ac50e271">strncpy</a>&#160;&#160;&#160;dont_use_strncpy</td></tr>
<tr class="memdesc:a5ad0cad79c46e9a6e2bc4b77ac50e271"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#af74a1e4b6b49709fc024d286568c2878" title="A safer strncpy - makes sure that there is a terminating zero. ">qstrncpy()</a> <br /></td></tr>
<tr class="separator:a5ad0cad79c46e9a6e2bc4b77ac50e271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad140927f9ba5dc16bf8d64b9fb92c187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad140927f9ba5dc16bf8d64b9fb92c187"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad140927f9ba5dc16bf8d64b9fb92c187">strcat</a>&#160;&#160;&#160;dont_use_strcat</td></tr>
<tr class="memdesc:ad140927f9ba5dc16bf8d64b9fb92c187"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a9e9f9105250f378799190e67245488d9" title="A safer strncat - accepts the size of the &#39;dst&#39; as &#39;dstsize&#39; and returns dst nb: ssize_t(dstsize) mus...">qstrncat()</a> <br /></td></tr>
<tr class="separator:ad140927f9ba5dc16bf8d64b9fb92c187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0ecd4d94f75ab9d2dd33590287fec50"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0ecd4d94f75ab9d2dd33590287fec50"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac0ecd4d94f75ab9d2dd33590287fec50">strncat</a>&#160;&#160;&#160;dont_use_strncat</td></tr>
<tr class="memdesc:ac0ecd4d94f75ab9d2dd33590287fec50"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a9e9f9105250f378799190e67245488d9" title="A safer strncat - accepts the size of the &#39;dst&#39; as &#39;dstsize&#39; and returns dst nb: ssize_t(dstsize) mus...">qstrncat()</a> <br /></td></tr>
<tr class="separator:ac0ecd4d94f75ab9d2dd33590287fec50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd2e1f38c695f4eead224e19cbf102b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd2e1f38c695f4eead224e19cbf102b0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#abd2e1f38c695f4eead224e19cbf102b0">gets</a>&#160;&#160;&#160;dont_use_gets</td></tr>
<tr class="memdesc:abd2e1f38c695f4eead224e19cbf102b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qfgets() <br /></td></tr>
<tr class="separator:abd2e1f38c695f4eead224e19cbf102b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5998f60c4f4af322b36debdbd11d7917"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5998f60c4f4af322b36debdbd11d7917"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5998f60c4f4af322b36debdbd11d7917">sprintf</a>&#160;&#160;&#160;dont_use_sprintf</td></tr>
<tr class="memdesc:a5998f60c4f4af322b36debdbd11d7917"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="group__qsnprintf.html#ga82e5d2c150c3a1d1eed598ea21baf879" title="A safer snprintf. ">qsnprintf()</a> <br /></td></tr>
<tr class="separator:a5998f60c4f4af322b36debdbd11d7917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa367b75c5aed883fef5befbdf04835a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa367b75c5aed883fef5befbdf04835a4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a>&#160;&#160;&#160;dont_use_snprintf</td></tr>
<tr class="memdesc:aa367b75c5aed883fef5befbdf04835a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="group__qsnprintf.html#ga82e5d2c150c3a1d1eed598ea21baf879" title="A safer snprintf. ">qsnprintf()</a> <br /></td></tr>
<tr class="separator:aa367b75c5aed883fef5befbdf04835a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9f68919b34e93893793f16fd6a422ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9f68919b34e93893793f16fd6a422ee"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab9f68919b34e93893793f16fd6a422ee">wsprintfA</a>&#160;&#160;&#160;dont_use_wsprintf</td></tr>
<tr class="memdesc:ab9f68919b34e93893793f16fd6a422ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="group__qsnprintf.html#ga82e5d2c150c3a1d1eed598ea21baf879" title="A safer snprintf. ">qsnprintf()</a> <br /></td></tr>
<tr class="separator:ab9f68919b34e93893793f16fd6a422ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf1a32c487efc5306d57219a57d57b60"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf1a32c487efc5306d57219a57d57b60"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acf1a32c487efc5306d57219a57d57b60">strcmpi</a>&#160;&#160;&#160;dont_use_strcmpi</td></tr>
<tr class="memdesc:acf1a32c487efc5306d57219a57d57b60"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a4e0be90a3757e352f42612d09a7d1aa5" title="see &#39;VS posix names&#39; ">stricmp()</a> <br /></td></tr>
<tr class="separator:acf1a32c487efc5306d57219a57d57b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3a1fdce8f91caabe3b9aaa93cb69044"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3a1fdce8f91caabe3b9aaa93cb69044"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad3a1fdce8f91caabe3b9aaa93cb69044">strncmpi</a>&#160;&#160;&#160;dont_use_strncmpi</td></tr>
<tr class="memdesc:ad3a1fdce8f91caabe3b9aaa93cb69044"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a16a19b1831112e876b010468ec15916f" title="see &#39;VS posix names&#39; ">strnicmp()</a> <br /></td></tr>
<tr class="separator:ad3a1fdce8f91caabe3b9aaa93cb69044"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafc8c101dfb6313ab0416a6c5903ce66"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafc8c101dfb6313ab0416a6c5903ce66"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aafc8c101dfb6313ab0416a6c5903ce66">getenv</a>&#160;&#160;&#160;dont_use_getenv</td></tr>
<tr class="memdesc:aafc8c101dfb6313ab0416a6c5903ce66"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#ab8ba72892569a9b71dd5ea7f94e6819c" title="Thread safe function to work with the environment. ">qgetenv()</a> <br /></td></tr>
<tr class="separator:aafc8c101dfb6313ab0416a6c5903ce66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3866aa356c8a01995c08aa99f8e2b216"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3866aa356c8a01995c08aa99f8e2b216"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3866aa356c8a01995c08aa99f8e2b216">setenv</a>&#160;&#160;&#160;dont_use_setenv</td></tr>
<tr class="memdesc:a3866aa356c8a01995c08aa99f8e2b216"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a0c6818cd6e13fd43c76fe4a714f33d00" title="Thread safe function to work with the environment. ">qsetenv()</a> <br /></td></tr>
<tr class="separator:a3866aa356c8a01995c08aa99f8e2b216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f3501cd06dda68c4b7d86da4a2ebf77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f3501cd06dda68c4b7d86da4a2ebf77"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7f3501cd06dda68c4b7d86da4a2ebf77">putenv</a>&#160;&#160;&#160;dont_use_putenv</td></tr>
<tr class="memdesc:a7f3501cd06dda68c4b7d86da4a2ebf77"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a0c6818cd6e13fd43c76fe4a714f33d00" title="Thread safe function to work with the environment. ">qsetenv()</a> <br /></td></tr>
<tr class="separator:a7f3501cd06dda68c4b7d86da4a2ebf77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b81bcb3e80e77a50e6b59d8c9d8a764"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b81bcb3e80e77a50e6b59d8c9d8a764"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3b81bcb3e80e77a50e6b59d8c9d8a764">strtok</a>&#160;&#160;&#160;dont_use_strrok</td></tr>
<tr class="memdesc:a3b81bcb3e80e77a50e6b59d8c9d8a764"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a014e6f74c7c212304c02edc431279f2c" title="Thread-safe version of strtok. ">qstrtok()</a> <br /></td></tr>
<tr class="separator:a3b81bcb3e80e77a50e6b59d8c9d8a764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d902b3b585aeeb61811326cce81cb1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab3d902b3b585aeeb61811326cce81cb1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab3d902b3b585aeeb61811326cce81cb1">strlwr</a>&#160;&#160;&#160;dont_use_strlwr</td></tr>
<tr class="memdesc:ab3d902b3b585aeeb61811326cce81cb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#ad7989b0f91d31eb3c1d6e040d1e95b31" title="Convert the string to lowercase. ">qstrlwr()</a> <br /></td></tr>
<tr class="separator:ab3d902b3b585aeeb61811326cce81cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3a5f59416c068c063e1b4e827cae493"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3a5f59416c068c063e1b4e827cae493"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad3a5f59416c068c063e1b4e827cae493">strupr</a>&#160;&#160;&#160;dont_use_strupr</td></tr>
<tr class="memdesc:ad3a5f59416c068c063e1b4e827cae493"><td class="mdescLeft">&#160;</td><td class="mdescRight">use <a class="el" href="pro_8h.html#a13f5005c03ce74224b8c530e05b79723" title="Convert the string to uppercase. ">qstrupr()</a> <br /></td></tr>
<tr class="separator:ad3a5f59416c068c063e1b4e827cae493"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab48894dc0738aef4f57ae3518a4af5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ab48894dc0738aef4f57ae3518a4af5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8ab48894dc0738aef4f57ae3518a4af5">waitid</a>&#160;&#160;&#160;dont_use_waitid</td></tr>
<tr class="memdesc:a8ab48894dc0738aef4f57ae3518a4af5"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qwait() <br /></td></tr>
<tr class="separator:a8ab48894dc0738aef4f57ae3518a4af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ff9ced808887c13e8b64c783f4b9f56"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ff9ced808887c13e8b64c783f4b9f56"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0ff9ced808887c13e8b64c783f4b9f56">waitpid</a>&#160;&#160;&#160;dont_use_waitpid</td></tr>
<tr class="memdesc:a0ff9ced808887c13e8b64c783f4b9f56"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qwait() <br /></td></tr>
<tr class="separator:a0ff9ced808887c13e8b64c783f4b9f56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96279fe0e5fa8c31bdf3b09af132fc44"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a96279fe0e5fa8c31bdf3b09af132fc44"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a96279fe0e5fa8c31bdf3b09af132fc44">wait</a>&#160;&#160;&#160;dont_use_wait</td></tr>
<tr class="memdesc:a96279fe0e5fa8c31bdf3b09af132fc44"><td class="mdescLeft">&#160;</td><td class="mdescRight">use qwait() <br /></td></tr>
<tr class="separator:a96279fe0e5fa8c31bdf3b09af132fc44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b6b1d08294fb1711c2e225508d2ee95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b6b1d08294fb1711c2e225508d2ee95"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0b6b1d08294fb1711c2e225508d2ee95">streq</a>(s1,  s2)                &#160;&#160;&#160;(strcmp((s1), (s2))  == 0)</td></tr>
<tr class="memdesc:a0b6b1d08294fb1711c2e225508d2ee95"><td class="mdescLeft">&#160;</td><td class="mdescRight">convenient check for string equality <br /></td></tr>
<tr class="separator:a0b6b1d08294fb1711c2e225508d2ee95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a641ff641d8144258aceb5d152556a65b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a641ff641d8144258aceb5d152556a65b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a641ff641d8144258aceb5d152556a65b">strieq</a>(s1,  s2)              &#160;&#160;&#160;(<a class="el" href="pro_8h.html#a4e0be90a3757e352f42612d09a7d1aa5">stricmp</a>((s1), (s2)) == 0)</td></tr>
<tr class="memdesc:a641ff641d8144258aceb5d152556a65b"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a0b6b1d08294fb1711c2e225508d2ee95" title="convenient check for string equality ">streq</a> <br /></td></tr>
<tr class="separator:a641ff641d8144258aceb5d152556a65b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d49cbb787f228580ea50c87c4eef20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2d49cbb787f228580ea50c87c4eef20"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae2d49cbb787f228580ea50c87c4eef20">strneq</a>(s1,  s2,  count)&#160;&#160;&#160;(strncmp((s1), (s2), (count))  == 0)</td></tr>
<tr class="memdesc:ae2d49cbb787f228580ea50c87c4eef20"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a0b6b1d08294fb1711c2e225508d2ee95" title="convenient check for string equality ">streq</a> <br /></td></tr>
<tr class="separator:ae2d49cbb787f228580ea50c87c4eef20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57c4d55b79919e131bb463a51fe91cdb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57c4d55b79919e131bb463a51fe91cdb"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a57c4d55b79919e131bb463a51fe91cdb">strnieq</a>(s1,  s2,  count)&#160;&#160;&#160;(<a class="el" href="pro_8h.html#a16a19b1831112e876b010468ec15916f">strnicmp</a>((s1), (s2), (count)) == 0)</td></tr>
<tr class="memdesc:a57c4d55b79919e131bb463a51fe91cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a0b6b1d08294fb1711c2e225508d2ee95" title="convenient check for string equality ">streq</a> <br /></td></tr>
<tr class="separator:a57c4d55b79919e131bb463a51fe91cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5d3ed78c3d158e9d6a1863f063c3648"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5d3ed78c3d158e9d6a1863f063c3648"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af5d3ed78c3d158e9d6a1863f063c3648">QMAXPATH</a>&#160;&#160;&#160;260</td></tr>
<tr class="memdesc:af5d3ed78c3d158e9d6a1863f063c3648"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of characters in a path specification <br /></td></tr>
<tr class="separator:af5d3ed78c3d158e9d6a1863f063c3648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90819bc56bb23ff4098a2b56d7ba264b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a90819bc56bb23ff4098a2b56d7ba264b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a90819bc56bb23ff4098a2b56d7ba264b">QMAXFILE</a>&#160;&#160;&#160;260</td></tr>
<tr class="memdesc:a90819bc56bb23ff4098a2b56d7ba264b"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of characters in a filename specification <br /></td></tr>
<tr class="separator:a90819bc56bb23ff4098a2b56d7ba264b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23195218eef2cf21e2beae685a041783"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a23195218eef2cf21e2beae685a041783">DELIMITER</a>&#160;&#160;&#160;&quot;;&quot;</td></tr>
<tr class="memdesc:a23195218eef2cf21e2beae685a041783"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delimiter of directory lists.  <a href="#a23195218eef2cf21e2beae685a041783">More...</a><br /></td></tr>
<tr class="separator:a23195218eef2cf21e2beae685a041783"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d112bae8fd35be772185b6ec6bcbe64"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d112bae8fd35be772185b6ec6bcbe64"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0d112bae8fd35be772185b6ec6bcbe64">SEEK_SET</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:a0d112bae8fd35be772185b6ec6bcbe64"><td class="mdescLeft">&#160;</td><td class="mdescRight">beginning of file <br /></td></tr>
<tr class="separator:a0d112bae8fd35be772185b6ec6bcbe64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c8d0b76b470ba65a43ca46a88320f39"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c8d0b76b470ba65a43ca46a88320f39"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4c8d0b76b470ba65a43ca46a88320f39">SEEK_CUR</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:a4c8d0b76b470ba65a43ca46a88320f39"><td class="mdescLeft">&#160;</td><td class="mdescRight">current position of the file * <br /></td></tr>
<tr class="separator:a4c8d0b76b470ba65a43ca46a88320f39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2a2e6c114780c3071efd24f16c7f7d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2a2e6c114780c3071efd24f16c7f7d8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8">SEEK_END</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ad2a2e6c114780c3071efd24f16c7f7d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">end of file * <br /></td></tr>
<tr class="separator:ad2a2e6c114780c3071efd24f16c7f7d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad58fca637a864c610283e7810cae250d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad58fca637a864c610283e7810cae250d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad58fca637a864c610283e7810cae250d">qmin</a>(a,  b)&#160;&#160;&#160;((a) &lt; (b)? (a): (b))</td></tr>
<tr class="memdesc:ad58fca637a864c610283e7810cae250d"><td class="mdescLeft">&#160;</td><td class="mdescRight">universal min <br /></td></tr>
<tr class="separator:ad58fca637a864c610283e7810cae250d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa66c6a5fc7b63597216448e571020cc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa66c6a5fc7b63597216448e571020cc8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aa66c6a5fc7b63597216448e571020cc8">qmax</a>(a,  b)&#160;&#160;&#160;((a) &gt; (b)? (a): (b))</td></tr>
<tr class="memdesc:aa66c6a5fc7b63597216448e571020cc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">universal max <br /></td></tr>
<tr class="separator:aa66c6a5fc7b63597216448e571020cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef073c2546a5ff20623dcce4fe6edc74"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aef073c2546a5ff20623dcce4fe6edc74">OPERATOR_NEW</a>(type,  count)&#160;&#160;&#160;new type[count]</td></tr>
<tr class="memdesc:aef073c2546a5ff20623dcce4fe6edc74"><td class="mdescLeft">&#160;</td><td class="mdescRight">GCC does not check for an integer overflow in 'operator new[]'.  <a href="#aef073c2546a5ff20623dcce4fe6edc74">More...</a><br /></td></tr>
<tr class="separator:aef073c2546a5ff20623dcce4fe6edc74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10f0c1f42f9ddb3d4ee042c489a3b230"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10f0c1f42f9ddb3d4ee042c489a3b230"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a10f0c1f42f9ddb3d4ee042c489a3b230">MC2</a>(c1,  c2)                &#160;&#160;&#160;<a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a>(((c2)&lt;&lt;8)|c1)</td></tr>
<tr class="memdesc:a10f0c1f42f9ddb3d4ee042c489a3b230"><td class="mdescLeft">&#160;</td><td class="mdescRight">We can not use multi-character constants because they are not portable - use this macro instead. <br /></td></tr>
<tr class="separator:a10f0c1f42f9ddb3d4ee042c489a3b230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e0abb77deaf9177890dae504e4fc1d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a39e0abb77deaf9177890dae504e4fc1d">MC3</a>(c1,  c2,  c3)        &#160;&#160;&#160;<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>(((((c3)&lt;&lt;8)|(c2))&lt;&lt;8)|c1)</td></tr>
<tr class="memdesc:a39e0abb77deaf9177890dae504e4fc1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">We can not use multi-character constants because they are not portable - use this macro instead.  <a href="#a39e0abb77deaf9177890dae504e4fc1d">More...</a><br /></td></tr>
<tr class="separator:a39e0abb77deaf9177890dae504e4fc1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afca0d2217a361502e60dea754441c5ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#afca0d2217a361502e60dea754441c5ff">MC4</a>(c1,  c2,  c3,  c4)&#160;&#160;&#160;<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>(((((((c4)&lt;&lt;8)|(c3))&lt;&lt;8)|(c2))&lt;&lt;8)|c1)</td></tr>
<tr class="memdesc:afca0d2217a361502e60dea754441c5ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">We can not use multi-character constants because they are not portable - use this macro instead.  <a href="#afca0d2217a361502e60dea754441c5ff">More...</a><br /></td></tr>
<tr class="separator:afca0d2217a361502e60dea754441c5ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a321a76729457dee669f1f6f7d6641fd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a321a76729457dee669f1f6f7d6641fd4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a321a76729457dee669f1f6f7d6641fd4">read4bytes</a>(h,  res,  mf)&#160;&#160;&#160;<a class="el" href="pro_8h.html#a8055a8933883a1ba50a059a3edba1faf">readbytes</a>(h, res, 4, mf)</td></tr>
<tr class="memdesc:a321a76729457dee669f1f6f7d6641fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a8055a8933883a1ba50a059a3edba1faf" title="Read at most 4 bytes from file. ">readbytes()</a> <br /></td></tr>
<tr class="separator:a321a76729457dee669f1f6f7d6641fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a9bd4382cfae29b1f2c6b0b4e0349b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4a9bd4382cfae29b1f2c6b0b4e0349b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af4a9bd4382cfae29b1f2c6b0b4e0349b">write2bytes</a>(h,  l,  mf)  &#160;&#160;&#160;<a class="el" href="pro_8h.html#a65f7acee9458c297dab692697ba52acd">writebytes</a>(h, l, 2, mf)</td></tr>
<tr class="memdesc:af4a9bd4382cfae29b1f2c6b0b4e0349b"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a65f7acee9458c297dab692697ba52acd" title="Write at most 4 bytes to file. ">writebytes()</a> <br /></td></tr>
<tr class="separator:af4a9bd4382cfae29b1f2c6b0b4e0349b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5e6e37a203980299acf3289ae0656ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5e6e37a203980299acf3289ae0656ac"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad5e6e37a203980299acf3289ae0656ac">write4bytes</a>(h,  l,  mf)  &#160;&#160;&#160;<a class="el" href="pro_8h.html#a65f7acee9458c297dab692697ba52acd">writebytes</a>(h, l, 4, mf)</td></tr>
<tr class="memdesc:ad5e6e37a203980299acf3289ae0656ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a65f7acee9458c297dab692697ba52acd" title="Write at most 4 bytes to file. ">writebytes()</a> <br /></td></tr>
<tr class="separator:ad5e6e37a203980299acf3289ae0656ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d516921254b8e0b91573a639608769c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8d516921254b8e0b91573a639608769c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8d516921254b8e0b91573a639608769c">swapea</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a></td></tr>
<tr class="memdesc:a8d516921254b8e0b91573a639608769c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of an <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> value. <br /></td></tr>
<tr class="separator:a8d516921254b8e0b91573a639608769c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a517be89e9f2bfad4c51a4068c5dc77f6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a517be89e9f2bfad4c51a4068c5dc77f6">qhtons</a>(x)&#160;&#160;&#160;<a class="el" href="pro_8h.html#a54a82bd22ccc00a89d2b5bbfa79bead1">swap16</a>(x)</td></tr>
<tr class="memdesc:a517be89e9f2bfad4c51a4068c5dc77f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value.  <a href="#a517be89e9f2bfad4c51a4068c5dc77f6">More...</a><br /></td></tr>
<tr class="separator:a517be89e9f2bfad4c51a4068c5dc77f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66946ea07120d59c161f19efe39f9e18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a66946ea07120d59c161f19efe39f9e18">qntohs</a>(x)&#160;&#160;&#160;<a class="el" href="pro_8h.html#a54a82bd22ccc00a89d2b5bbfa79bead1">swap16</a>(x)</td></tr>
<tr class="memdesc:a66946ea07120d59c161f19efe39f9e18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value.  <a href="#a66946ea07120d59c161f19efe39f9e18">More...</a><br /></td></tr>
<tr class="separator:a66946ea07120d59c161f19efe39f9e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcacc1695a4462b6330edf4516373362"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#abcacc1695a4462b6330edf4516373362">qhtonl</a>(x)&#160;&#160;&#160;<a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a>(x)</td></tr>
<tr class="memdesc:abcacc1695a4462b6330edf4516373362"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value.  <a href="#abcacc1695a4462b6330edf4516373362">More...</a><br /></td></tr>
<tr class="separator:abcacc1695a4462b6330edf4516373362"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac16afcc9f6b71f4afa81767b0cc21162"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac16afcc9f6b71f4afa81767b0cc21162">qntohl</a>(x)&#160;&#160;&#160;<a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a>(x)</td></tr>
<tr class="memdesc:ac16afcc9f6b71f4afa81767b0cc21162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switch endianness of given value.  <a href="#ac16afcc9f6b71f4afa81767b0cc21162">More...</a><br /></td></tr>
<tr class="separator:ac16afcc9f6b71f4afa81767b0cc21162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f51d946434d35adb9d25672d68d0f23"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f51d946434d35adb9d25672d68d0f23"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4f51d946434d35adb9d25672d68d0f23">PLACEMENT_DELETE</a>&#160;&#160;&#160;void operator delete(void *, void *) {}</td></tr>
<tr class="memdesc:a4f51d946434d35adb9d25672d68d0f23"><td class="mdescLeft">&#160;</td><td class="mdescRight">bcc complains about placement delete <br /></td></tr>
<tr class="separator:a4f51d946434d35adb9d25672d68d0f23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a9bf81106a431b4b6ad8574310b82ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8a9bf81106a431b4b6ad8574310b82ce">DEFINE_MEMORY_ALLOCATION_FUNCS</a>()                                                </td></tr>
<tr class="memdesc:a8a9bf81106a431b4b6ad8574310b82ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro to declare memory allocation functions.  <a href="#a8a9bf81106a431b4b6ad8574310b82ce">More...</a><br /></td></tr>
<tr class="separator:a8a9bf81106a431b4b6ad8574310b82ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48f62c4a83ee1e96d41799e9df33bbd1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a48f62c4a83ee1e96d41799e9df33bbd1">DECLARE_COMPARISON_OPERATORS</a>(type)                                                        </td></tr>
<tr class="memdesc:a48f62c4a83ee1e96d41799e9df33bbd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to declare standard inline comparison operators.  <a href="#a48f62c4a83ee1e96d41799e9df33bbd1">More...</a><br /></td></tr>
<tr class="separator:a48f62c4a83ee1e96d41799e9df33bbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a513bf95ac8018cd74cd85b0444961def"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a513bf95ac8018cd74cd85b0444961def">DECLARE_COMPARISONS</a>(type)    </td></tr>
<tr class="memdesc:a513bf95ac8018cd74cd85b0444961def"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to declare comparisons for our classes.  <a href="#a513bf95ac8018cd74cd85b0444961def">More...</a><br /></td></tr>
<tr class="separator:a513bf95ac8018cd74cd85b0444961def"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad500f63bfe91b069379095060dea4d6d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad500f63bfe91b069379095060dea4d6d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#gad500f63bfe91b069379095060dea4d6d">RELOBJ_MASK</a>&#160;&#160;&#160;0xF</td></tr>
<tr class="memdesc:gad500f63bfe91b069379095060dea4d6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">the first byte describes the relocation entry types <br /></td></tr>
<tr class="separator:gad500f63bfe91b069379095060dea4d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68662ac9e3c829db2a6899ee80f002ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga68662ac9e3c829db2a6899ee80f002ab"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#ga68662ac9e3c829db2a6899ee80f002ab">RELSIZE_1</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga68662ac9e3c829db2a6899ee80f002ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">8-bit relocations <br /></td></tr>
<tr class="separator:ga68662ac9e3c829db2a6899ee80f002ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5df24be363ba05e7f6aa4cbbe43fa212"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5df24be363ba05e7f6aa4cbbe43fa212"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#ga5df24be363ba05e7f6aa4cbbe43fa212">RELSIZE_2</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga5df24be363ba05e7f6aa4cbbe43fa212"><td class="mdescLeft">&#160;</td><td class="mdescRight">16-bit relocations <br /></td></tr>
<tr class="separator:ga5df24be363ba05e7f6aa4cbbe43fa212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebca938729f9a0915fca7582ad4fc381"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaebca938729f9a0915fca7582ad4fc381"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#gaebca938729f9a0915fca7582ad4fc381">RELSIZE_4</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:gaebca938729f9a0915fca7582ad4fc381"><td class="mdescLeft">&#160;</td><td class="mdescRight">32-bit relocations <br /></td></tr>
<tr class="separator:gaebca938729f9a0915fca7582ad4fc381"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5dfc40b205e3ef27188a1e2072b5c58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5dfc40b205e3ef27188a1e2072b5c58"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#gae5dfc40b205e3ef27188a1e2072b5c58">RELSIZE_8</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:gae5dfc40b205e3ef27188a1e2072b5c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">64-bit relocations <br /></td></tr>
<tr class="separator:gae5dfc40b205e3ef27188a1e2072b5c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4942fa0a7e7c6bc090c0d71cfe034840"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4942fa0a7e7c6bc090c0d71cfe034840"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#ga4942fa0a7e7c6bc090c0d71cfe034840">RELSIZE_CUST</a>&#160;&#160;&#160;15</td></tr>
<tr class="memdesc:ga4942fa0a7e7c6bc090c0d71cfe034840"><td class="mdescLeft">&#160;</td><td class="mdescRight">custom relocations, should be handled internally <br /></td></tr>
<tr class="separator:ga4942fa0a7e7c6bc090c0d71cfe034840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48541017d2effc866bd5f15d6d769893"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga48541017d2effc866bd5f15d6d769893"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___r_e_l_o_b_j__.html#ga48541017d2effc866bd5f15d6d769893">RELOBJ_CNT</a>&#160;&#160;&#160;0x80</td></tr>
<tr class="memdesc:ga48541017d2effc866bd5f15d6d769893"><td class="mdescLeft">&#160;</td><td class="mdescRight">counter present (not used yet) <br /></td></tr>
<tr class="separator:ga48541017d2effc866bd5f15d6d769893"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0976bb11965a1fee145e9281e1f97ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0976bb11965a1fee145e9281e1f97ef"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab0976bb11965a1fee145e9281e1f97ef">QLIST_DEFINED</a></td></tr>
<tr class="memdesc:ab0976bb11965a1fee145e9281e1f97ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">signal that the qlist class has been defined <br /></td></tr>
<tr class="separator:ab0976bb11965a1fee145e9281e1f97ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a7886d67cc944453f722d5d74fca766"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a7886d67cc944453f722d5d74fca766"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3a7886d67cc944453f722d5d74fca766">DEFINE_LIST_ITERATOR</a>(iter,  constness,  cstr)                                      </td></tr>
<tr class="memdesc:a3a7886d67cc944453f722d5d74fca766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used for defining the 'iterator' and 'const_iterator' classes for qlist. <br /></td></tr>
<tr class="separator:a3a7886d67cc944453f722d5d74fca766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45e30617d8d7258e222d433f1bd1e07c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>DEFINE_REVERSE_ITERATOR</b>(riter,  iter)                                                    </td></tr>
<tr class="separator:a45e30617d8d7258e222d433f1bd1e07c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411df2435fac0228ade05b83af598353"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a411df2435fac0228ade05b83af598353">DEFINE_VIRTUAL_DTOR</a>(name)&#160;&#160;&#160;virtual ~name(void) {}</td></tr>
<tr class="memdesc:a411df2435fac0228ade05b83af598353"><td class="mdescLeft">&#160;</td><td class="mdescRight">GCC generates multiple destructors and they occupy multiple slots of the virtual function table.  <a href="#a411df2435fac0228ade05b83af598353">More...</a><br /></td></tr>
<tr class="separator:a411df2435fac0228ade05b83af598353"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbd93524a4c5156ceb8a3300099e80fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbd93524a4c5156ceb8a3300099e80fc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#afbd93524a4c5156ceb8a3300099e80fc">DECLARE_VIRTUAL_DTOR</a>(name)&#160;&#160;&#160;virtual ~name(void)</td></tr>
<tr class="memdesc:afbd93524a4c5156ceb8a3300099e80fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">see <a class="el" href="pro_8h.html#a411df2435fac0228ade05b83af598353" title="GCC generates multiple destructors and they occupy multiple slots of the virtual function table...">DEFINE_VIRTUAL_DTOR</a> <br /></td></tr>
<tr class="separator:afbd93524a4c5156ceb8a3300099e80fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5cc6b4d725987053d84b6e27fca1b56"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac5cc6b4d725987053d84b6e27fca1b56">DECLARE_UNCOPYABLE</a>(T)&#160;&#160;&#160;T &amp;operator=(const T &amp;); T(const T &amp;);</td></tr>
<tr class="memdesc:ac5cc6b4d725987053d84b6e27fca1b56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declare class as uncopyable.  <a href="#ac5cc6b4d725987053d84b6e27fca1b56">More...</a><br /></td></tr>
<tr class="separator:ac5cc6b4d725987053d84b6e27fca1b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd7e581fa01c68a7b60e898e539a28f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd7e581fa01c68a7b60e898e539a28f4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_d_b_d_e_c__.html#gacd7e581fa01c68a7b60e898e539a28f4">IDBDEC_ESCAPE</a>&#160;&#160;&#160;0x00000001</td></tr>
<tr class="memdesc:gacd7e581fa01c68a7b60e898e539a28f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">convert non-printable characters to C escapes (<br />
, , ) <br /></td></tr>
<tr class="separator:gacd7e581fa01c68a7b60e898e539a28f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d5b07c48a88d7d23929376898b8c04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1d5b07c48a88d7d23929376898b8c04"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab1d5b07c48a88d7d23929376898b8c04">MY_CP_ACP</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ab1d5b07c48a88d7d23929376898b8c04"><td class="mdescLeft">&#160;</td><td class="mdescRight">ANSI codepage (e.g., argv) &lt;-&gt; UTF-8. <br /></td></tr>
<tr class="separator:ab1d5b07c48a88d7d23929376898b8c04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e5ab76c8378d55566c0e3d5d040bb33"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e5ab76c8378d55566c0e3d5d040bb33"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MY_CP_OEM</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a0e5ab76c8378d55566c0e3d5d040bb33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a330a638dce5e326ab22d817f14d3fbbc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a330a638dce5e326ab22d817f14d3fbbc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MY_CP_UTF8</b>&#160;&#160;&#160;65001</td></tr>
<tr class="separator:a330a638dce5e326ab22d817f14d3fbbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb5b997efa27252ebad1d25e27d2e6e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1fb5b997efa27252ebad1d25e27d2e6e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>BADCP</b>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a>(-1)</td></tr>
<tr class="separator:a1fb5b997efa27252ebad1d25e27d2e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbfe23b246addb7fa7e0da9119445ab8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabbfe23b246addb7fa7e0da9119445ab8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CEF_RETERR</b>&#160;&#160;&#160;0x1</td></tr>
<tr class="separator:gabbfe23b246addb7fa7e0da9119445ab8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0666846ef3d144935f9b9fc5168310e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0666846ef3d144935f9b9fc5168310e8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_WIN1252</b>&#160;&#160;&#160;&quot;windows-1252&quot;</td></tr>
<tr class="separator:a0666846ef3d144935f9b9fc5168310e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ce1fc72d5fa55d7add9d1e20bdf6fee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ce1fc72d5fa55d7add9d1e20bdf6fee"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF8</b>&#160;&#160;&#160;&quot;UTF-8&quot;</td></tr>
<tr class="separator:a6ce1fc72d5fa55d7add9d1e20bdf6fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f494d349890be87e5ed37ffd24ba55f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f494d349890be87e5ed37ffd24ba55f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_MUTF8</b>&#160;&#160;&#160;&quot;MUTF-8&quot;</td></tr>
<tr class="separator:a0f494d349890be87e5ed37ffd24ba55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08d3049cc3db1d941ec16b232f326bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad08d3049cc3db1d941ec16b232f326bd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF16</b>&#160;&#160;&#160;&quot;UTF-16&quot;</td></tr>
<tr class="separator:ad08d3049cc3db1d941ec16b232f326bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc6b1a4db9bc80a0bdf414270374f11c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc6b1a4db9bc80a0bdf414270374f11c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF16LE</b>&#160;&#160;&#160;&quot;UTF-16LE&quot;</td></tr>
<tr class="separator:adc6b1a4db9bc80a0bdf414270374f11c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d10842cb2d31bd513993508cac4c726"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d10842cb2d31bd513993508cac4c726"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF16BE</b>&#160;&#160;&#160;&quot;UTF-16BE&quot;</td></tr>
<tr class="separator:a5d10842cb2d31bd513993508cac4c726"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a8b775a7f2d853e6cfb511b15fdeacf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a8b775a7f2d853e6cfb511b15fdeacf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF32LE</b>&#160;&#160;&#160;&quot;UTF-32LE&quot;</td></tr>
<tr class="separator:a4a8b775a7f2d853e6cfb511b15fdeacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21eefdc239ca4032dff918fa3406cbee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21eefdc239ca4032dff918fa3406cbee"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ENC_UTF32BE</b>&#160;&#160;&#160;&quot;UTF-32BE&quot;</td></tr>
<tr class="separator:a21eefdc239ca4032dff918fa3406cbee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadb80d30a31c113f6fe45511d44f9922"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadb80d30a31c113f6fe45511d44f9922"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aadb80d30a31c113f6fe45511d44f9922">CP_UTF8</a>&#160;&#160;&#160;65001</td></tr>
<tr class="memdesc:aadb80d30a31c113f6fe45511d44f9922"><td class="mdescLeft">&#160;</td><td class="mdescRight">UTF-8 codepage. <br /></td></tr>
<tr class="separator:aadb80d30a31c113f6fe45511d44f9922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb2ff2067e6b8e5a97eb80352e0fd046"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb2ff2067e6b8e5a97eb80352e0fd046"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#acb2ff2067e6b8e5a97eb80352e0fd046">CP_UTF16</a>&#160;&#160;&#160;1200</td></tr>
<tr class="memdesc:acb2ff2067e6b8e5a97eb80352e0fd046"><td class="mdescLeft">&#160;</td><td class="mdescRight">UTF-16 codepage. <br /></td></tr>
<tr class="separator:acb2ff2067e6b8e5a97eb80352e0fd046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c3e148aed786e7d7edf84c4551ebbb5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5c3e148aed786e7d7edf84c4551ebbb5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a5c3e148aed786e7d7edf84c4551ebbb5">INVALID_FILE_ATTRIBUTES</a>&#160;&#160;&#160;((DWORD)-1)</td></tr>
<tr class="memdesc:a5c3e148aed786e7d7edf84c4551ebbb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">old Visual C++ compilers were not defining this <br /></td></tr>
<tr class="separator:a5c3e148aed786e7d7edf84c4551ebbb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56b8c0b48c8e29849467170ad19ac801"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a56b8c0b48c8e29849467170ad19ac801">BELOW_NORMAL_PRIORITY_CLASS</a>&#160;&#160;&#160;0x00004000</td></tr>
<tr class="memdesc:a56b8c0b48c8e29849467170ad19ac801"><td class="mdescLeft">&#160;</td><td class="mdescRight">old Visual C++ compilers were not defining this  <a href="#a56b8c0b48c8e29849467170ad19ac801">More...</a><br /></td></tr>
<tr class="separator:a56b8c0b48c8e29849467170ad19ac801"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e2887e07438f24e08bebfd73d541813"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e2887e07438f24e08bebfd73d541813"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2e2887e07438f24e08bebfd73d541813">SUBSTCHAR</a>&#160;&#160;&#160;'_'</td></tr>
<tr class="memdesc:a2e2887e07438f24e08bebfd73d541813"><td class="mdescLeft">&#160;</td><td class="mdescRight">default char, used if a char cannot be represented in a codepage <br /></td></tr>
<tr class="separator:a2e2887e07438f24e08bebfd73d541813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5314b4ed32e86fb438e011ac3046456"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5314b4ed32e86fb438e011ac3046456"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae5314b4ed32e86fb438e011ac3046456">DEFCOLOR</a>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a3df5040891132e50157aee66affdf1de">bgcolor_t</a>(-1)</td></tr>
<tr class="memdesc:ae5314b4ed32e86fb438e011ac3046456"><td class="mdescLeft">&#160;</td><td class="mdescRight">default color (used in function, segment definitions) <br /></td></tr>
<tr class="separator:ae5314b4ed32e86fb438e011ac3046456"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7f0f7a1f21dbecee6576ae133d18ff1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7f0f7a1f21dbecee6576ae133d18ff1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_o_r_e_d_i_r__.html#gae7f0f7a1f21dbecee6576ae133d18ff1">IOREDIR_INPUT</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="memdesc:gae7f0f7a1f21dbecee6576ae133d18ff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">input redirection <br /></td></tr>
<tr class="separator:gae7f0f7a1f21dbecee6576ae133d18ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecbe0d841ba5ff00f0ea809ffee29de5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecbe0d841ba5ff00f0ea809ffee29de5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_o_r_e_d_i_r__.html#gaecbe0d841ba5ff00f0ea809ffee29de5">IOREDIR_OUTPUT</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="memdesc:gaecbe0d841ba5ff00f0ea809ffee29de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">output redirection <br /></td></tr>
<tr class="separator:gaecbe0d841ba5ff00f0ea809ffee29de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9980b995c6e9a1430315a9652695639b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9980b995c6e9a1430315a9652695639b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_o_r_e_d_i_r__.html#ga9980b995c6e9a1430315a9652695639b">IOREDIR_APPEND</a>&#160;&#160;&#160;0x04</td></tr>
<tr class="memdesc:ga9980b995c6e9a1430315a9652695639b"><td class="mdescLeft">&#160;</td><td class="mdescRight">append, do not overwrite the output file <br /></td></tr>
<tr class="separator:ga9980b995c6e9a1430315a9652695639b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga14bedac94c44f284bddb03bbcf11b058"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14bedac94c44f284bddb03bbcf11b058"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___i_o_r_e_d_i_r__.html#ga14bedac94c44f284bddb03bbcf11b058">IOREDIR_QUOTED</a>&#160;&#160;&#160;0x08</td></tr>
<tr class="memdesc:ga14bedac94c44f284bddb03bbcf11b058"><td class="mdescLeft">&#160;</td><td class="mdescRight">the file name was quoted <br /></td></tr>
<tr class="separator:ga14bedac94c44f284bddb03bbcf11b058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a72f961d93bee3e84920f010aa396b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6a72f961d93bee3e84920f010aa396b5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga6a72f961d93bee3e84920f010aa396b5">LP_NEW_CONSOLE</a>&#160;&#160;&#160;0x0001</td></tr>
<tr class="memdesc:ga6a72f961d93bee3e84920f010aa396b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">create new console (only ms windows) <br /></td></tr>
<tr class="separator:ga6a72f961d93bee3e84920f010aa396b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a68a94201de80e7b38a99f7521fa479"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a68a94201de80e7b38a99f7521fa479"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga2a68a94201de80e7b38a99f7521fa479">LP_TRACE</a>&#160;&#160;&#160;0x0002</td></tr>
<tr class="memdesc:ga2a68a94201de80e7b38a99f7521fa479"><td class="mdescLeft">&#160;</td><td class="mdescRight">debug: unix: ptrace(TRACEME), windows: DEBUG_PROCESS <br /></td></tr>
<tr class="separator:ga2a68a94201de80e7b38a99f7521fa479"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf7d57c6fd05fd8a992d28d924310092"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaf7d57c6fd05fd8a992d28d924310092"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#gaaf7d57c6fd05fd8a992d28d924310092">LP_PATH_WITH_ARGS</a>&#160;&#160;&#160;0x0004</td></tr>
<tr class="memdesc:gaaf7d57c6fd05fd8a992d28d924310092"><td class="mdescLeft">&#160;</td><td class="mdescRight">'args' contains executable path too <br /></td></tr>
<tr class="separator:gaaf7d57c6fd05fd8a992d28d924310092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa327ff3c5b75dc1f0386d2706f44bc9b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#gaa327ff3c5b75dc1f0386d2706f44bc9b">LP_USE_SHELL</a>&#160;&#160;&#160;0x0008</td></tr>
<tr class="memdesc:gaa327ff3c5b75dc1f0386d2706f44bc9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">use shell to launch the command.  <a href="group___l_p__.html#gaa327ff3c5b75dc1f0386d2706f44bc9b">More...</a><br /></td></tr>
<tr class="separator:gaa327ff3c5b75dc1f0386d2706f44bc9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga636e8219625f894dd0c51053df1c5ed9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga636e8219625f894dd0c51053df1c5ed9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga636e8219625f894dd0c51053df1c5ed9">LP_LAUNCH_32_BIT</a>&#160;&#160;&#160;0x0010</td></tr>
<tr class="memdesc:ga636e8219625f894dd0c51053df1c5ed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">prefer to launch 32-bit part of file (only mac) <br /></td></tr>
<tr class="separator:ga636e8219625f894dd0c51053df1c5ed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab69b1c1794fcf8f988177f1d348d27ef"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#gab69b1c1794fcf8f988177f1d348d27ef">LP_LAUNCH_64_BIT</a>&#160;&#160;&#160;0x0020</td></tr>
<tr class="memdesc:gab69b1c1794fcf8f988177f1d348d27ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">prefer to launch 64-bit part of file (only mac)  <a href="group___l_p__.html#gab69b1c1794fcf8f988177f1d348d27ef">More...</a><br /></td></tr>
<tr class="separator:gab69b1c1794fcf8f988177f1d348d27ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a52d1cd9ba5d6ac517cb824d7768ec0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4a52d1cd9ba5d6ac517cb824d7768ec0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga4a52d1cd9ba5d6ac517cb824d7768ec0">LP_NO_ASLR</a>&#160;&#160;&#160;0x0040</td></tr>
<tr class="memdesc:ga4a52d1cd9ba5d6ac517cb824d7768ec0"><td class="mdescLeft">&#160;</td><td class="mdescRight">disable ASLR (only mac) <br /></td></tr>
<tr class="separator:ga4a52d1cd9ba5d6ac517cb824d7768ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61dd4175be8f944fe1102f1c2947d0c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga61dd4175be8f944fe1102f1c2947d0c2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga61dd4175be8f944fe1102f1c2947d0c2">LP_DETACH_TTY</a>&#160;&#160;&#160;0x0080</td></tr>
<tr class="memdesc:ga61dd4175be8f944fe1102f1c2947d0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">detach the current tty (unix) <br /></td></tr>
<tr class="separator:ga61dd4175be8f944fe1102f1c2947d0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3799601cb3277fddf6e07fe9ad67874f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3799601cb3277fddf6e07fe9ad67874f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___l_p__.html#ga3799601cb3277fddf6e07fe9ad67874f">LP_HIDE_WINDOW</a>&#160;&#160;&#160;0x0100</td></tr>
<tr class="memdesc:ga3799601cb3277fddf6e07fe9ad67874f"><td class="mdescLeft">&#160;</td><td class="mdescRight">tries to hide new window on startup (only windows) <br /></td></tr>
<tr class="separator:ga3799601cb3277fddf6e07fe9ad67874f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a883104093038da6648f4f4973d05641b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a883104093038da6648f4f4973d05641b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a883104093038da6648f4f4973d05641b">OPAQUE_HANDLE</a>(n)&#160;&#160;&#160;typedef struct __ ## n {} *n</td></tr>
<tr class="memdesc:a883104093038da6648f4f4973d05641b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread opaque handle. <br /></td></tr>
<tr class="separator:a883104093038da6648f4f4973d05641b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">VS posix names</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>Shut up Visual Studio (VS deprecated posix names but there seems to be no good reason for that) </p>
</div></td></tr>
<tr class="memitem:a9ebf7229784b92a0ebd2b89603e64c11"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ebf7229784b92a0ebd2b89603e64c11"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>chdir</b>&#160;&#160;&#160;_chdir</td></tr>
<tr class="separator:a9ebf7229784b92a0ebd2b89603e64c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c12e4b6615ac6838a99d5b6fa619683"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c12e4b6615ac6838a99d5b6fa619683"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>fileno</b>&#160;&#160;&#160;_fileno</td></tr>
<tr class="separator:a2c12e4b6615ac6838a99d5b6fa619683"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e8e503c240e5fb2f033c4a27b2e3556"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e8e503c240e5fb2f033c4a27b2e3556"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>getcwd</b>&#160;&#160;&#160;_getcwd</td></tr>
<tr class="separator:a5e8e503c240e5fb2f033c4a27b2e3556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecee75a7e0b92a4d6418461799e764e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecee75a7e0b92a4d6418461799e764e4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>memicmp</b>&#160;&#160;&#160;_memicmp</td></tr>
<tr class="separator:aecee75a7e0b92a4d6418461799e764e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af837744613408b57dc3654fbc3bcf900"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af837744613408b57dc3654fbc3bcf900"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>F_OK</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:af837744613408b57dc3654fbc3bcf900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5acf4043c0903cda7436b108e29e8e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5acf4043c0903cda7436b108e29e8e6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>W_OK</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ae5acf4043c0903cda7436b108e29e8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24a7a0ceb1e8f5f44cb1038bb829030d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24a7a0ceb1e8f5f44cb1038bb829030d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>R_OK</b>&#160;&#160;&#160;4</td></tr>
<tr class="separator:a24a7a0ceb1e8f5f44cb1038bb829030d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Safe buffer append</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>In the following macros, 'buf' must be always less than 'end'.</p>
<p>When we run up to the end, we put a 0 there and don't increase buf anymore </p>
</div></td></tr>
<tr class="memitem:a6ddc241de53ea1a3007a14b49301bfa4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a6ddc241de53ea1a3007a14b49301bfa4">APPCHAR</a>(buf,  end,  chr)                                    </td></tr>
<tr class="memdesc:a6ddc241de53ea1a3007a14b49301bfa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a character to the buffer checking the buffer size.  <a href="#a6ddc241de53ea1a3007a14b49301bfa4">More...</a><br /></td></tr>
<tr class="separator:a6ddc241de53ea1a3007a14b49301bfa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3eedfe5c48c9950de88010445a06ed84"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3eedfe5c48c9950de88010445a06ed84">APPZERO</a>(buf,  end)                                              </td></tr>
<tr class="memdesc:a3eedfe5c48c9950de88010445a06ed84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a zero byte at buffer.  <a href="#a3eedfe5c48c9950de88010445a06ed84">More...</a><br /></td></tr>
<tr class="separator:a3eedfe5c48c9950de88010445a06ed84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4610b2c9454c75f1224a840b2b3d83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#afd4610b2c9454c75f1224a840b2b3d83">APPEND</a>(buf,  end,  name)                                    </td></tr>
<tr class="memdesc:afd4610b2c9454c75f1224a840b2b3d83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a string to the buffer checking the buffer size.  <a href="#afd4610b2c9454c75f1224a840b2b3d83">More...</a><br /></td></tr>
<tr class="separator:afd4610b2c9454c75f1224a840b2b3d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a65f85814a8290f9797005d3b28e7e5fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65f85814a8290f9797005d3b28e7e5fc"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a></td></tr>
<tr class="memdesc:a65f85814a8290f9797005d3b28e7e5fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 8 bit value <br /></td></tr>
<tr class="separator:a65f85814a8290f9797005d3b28e7e5fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab95f123a6c9bcfee6a343170ef8c5f69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab95f123a6c9bcfee6a343170ef8c5f69"></a>
typedef unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a></td></tr>
<tr class="memdesc:ab95f123a6c9bcfee6a343170ef8c5f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 16 bit value <br /></td></tr>
<tr class="separator:ab95f123a6c9bcfee6a343170ef8c5f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91ad9478d81a7aaf2593e8d9c3d06a14"></a>
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
<tr class="memdesc:a91ad9478d81a7aaf2593e8d9c3d06a14"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 32 bit value <br /></td></tr>
<tr class="separator:a91ad9478d81a7aaf2593e8d9c3d06a14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae47c588f3ab8c61121c1c7ab7edc47cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae47c588f3ab8c61121c1c7ab7edc47cd"></a>
typedef char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae47c588f3ab8c61121c1c7ab7edc47cd">int8</a></td></tr>
<tr class="memdesc:ae47c588f3ab8c61121c1c7ab7edc47cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed 8 bit value <br /></td></tr>
<tr class="separator:ae47c588f3ab8c61121c1c7ab7edc47cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a6408291ee3cfd0760a61ac64084154"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a6408291ee3cfd0760a61ac64084154"></a>
typedef signed char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1a6408291ee3cfd0760a61ac64084154">sint8</a></td></tr>
<tr class="memdesc:a1a6408291ee3cfd0760a61ac64084154"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed 8 bit value <br /></td></tr>
<tr class="separator:a1a6408291ee3cfd0760a61ac64084154"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adde6aaee8457bee49c2a92621fe22b79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adde6aaee8457bee49c2a92621fe22b79"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a></td></tr>
<tr class="memdesc:adde6aaee8457bee49c2a92621fe22b79"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 8 bit value <br /></td></tr>
<tr class="separator:adde6aaee8457bee49c2a92621fe22b79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4355d16fcf9f644c9ac84293f0b1801f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4355d16fcf9f644c9ac84293f0b1801f"></a>
typedef short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a4355d16fcf9f644c9ac84293f0b1801f">int16</a></td></tr>
<tr class="memdesc:a4355d16fcf9f644c9ac84293f0b1801f"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed 16 bit value <br /></td></tr>
<tr class="separator:a4355d16fcf9f644c9ac84293f0b1801f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05f6b0ae8f6a6e135b0e290c25fe0e4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05f6b0ae8f6a6e135b0e290c25fe0e4e"></a>
typedef unsigned short&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a05f6b0ae8f6a6e135b0e290c25fe0e4e">uint16</a></td></tr>
<tr class="memdesc:a05f6b0ae8f6a6e135b0e290c25fe0e4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 16 bit value <br /></td></tr>
<tr class="separator:a05f6b0ae8f6a6e135b0e290c25fe0e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f1a81c92849566ae864511088eb7e8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56f1a81c92849566ae864511088eb7e8"></a>
typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a></td></tr>
<tr class="memdesc:a56f1a81c92849566ae864511088eb7e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed 32 bit value <br /></td></tr>
<tr class="separator:a56f1a81c92849566ae864511088eb7e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1134b580f8da4de94ca6b1de4d37975e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1134b580f8da4de94ca6b1de4d37975e"></a>
typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a></td></tr>
<tr class="memdesc:a1134b580f8da4de94ca6b1de4d37975e"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 32 bit value <br /></td></tr>
<tr class="separator:a1134b580f8da4de94ca6b1de4d37975e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af755b91e0abdf71f5715f00e68b35e0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af755b91e0abdf71f5715f00e68b35e0a"></a>
typedef longlong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a">int64</a></td></tr>
<tr class="memdesc:af755b91e0abdf71f5715f00e68b35e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed 64 bit value <br /></td></tr>
<tr class="separator:af755b91e0abdf71f5715f00e68b35e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f5563986d7f95e4fad5876c17d9cdda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f5563986d7f95e4fad5876c17d9cdda"></a>
typedef ulonglong&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a></td></tr>
<tr class="memdesc:a2f5563986d7f95e4fad5876c17d9cdda"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned 64 bit value <br /></td></tr>
<tr class="separator:a2f5563986d7f95e4fad5876c17d9cdda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14f3b825da8a4c7f4f29afd1e080e52b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14f3b825da8a4c7f4f29afd1e080e52b"></a>
typedef wchar_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a></td></tr>
<tr class="memdesc:a14f3b825da8a4c7f4f29afd1e080e52b"><td class="mdescLeft">&#160;</td><td class="mdescRight">2-byte char <br /></td></tr>
<tr class="separator:a14f3b825da8a4c7f4f29afd1e080e52b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cb2c72a19890e3551e2d74193b9c115"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0cb2c72a19890e3551e2d74193b9c115"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a></td></tr>
<tr class="memdesc:a0cb2c72a19890e3551e2d74193b9c115"><td class="mdescLeft">&#160;</td><td class="mdescRight">4-byte char <br /></td></tr>
<tr class="separator:a0cb2c72a19890e3551e2d74193b9c115"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab65ed42d67e6c517c746ff2a6a187016"><td class="memItemLeft" align="right" valign="top">typedef ptrdiff_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a></td></tr>
<tr class="memdesc:ab65ed42d67e6c517c746ff2a6a187016"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signed size_t - used to check for size overflows when the counter becomes negative.  <a href="#ab65ed42d67e6c517c746ff2a6a187016">More...</a><br /></td></tr>
<tr class="separator:ab65ed42d67e6c517c746ff2a6a187016"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b0aeaed04e477c02cf8ea3452002d1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b0aeaed04e477c02cf8ea3452002d1a"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a></td></tr>
<tr class="memdesc:a7b0aeaed04e477c02cf8ea3452002d1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">effective address <br /></td></tr>
<tr class="separator:a7b0aeaed04e477c02cf8ea3452002d1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a633a07e2920351503da14c0adcd3edfd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a633a07e2920351503da14c0adcd3edfd"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a633a07e2920351503da14c0adcd3edfd">sel_t</a></td></tr>
<tr class="memdesc:a633a07e2920351503da14c0adcd3edfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">segment selector <br /></td></tr>
<tr class="separator:a633a07e2920351503da14c0adcd3edfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbc570541d9f9a0c4489f9f1fe5f5699"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbc570541d9f9a0c4489f9f1fe5f5699"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a></td></tr>
<tr class="memdesc:adbc570541d9f9a0c4489f9f1fe5f5699"><td class="mdescLeft">&#160;</td><td class="mdescRight">memory chunk size <br /></td></tr>
<tr class="separator:adbc570541d9f9a0c4489f9f1fe5f5699"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac29a387cc69c0d1abb2f2ef05dad1a6f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac29a387cc69c0d1abb2f2ef05dad1a6f"></a>
typedef <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ac29a387cc69c0d1abb2f2ef05dad1a6f">adiff_t</a></td></tr>
<tr class="memdesc:ac29a387cc69c0d1abb2f2ef05dad1a6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">address difference <br /></td></tr>
<tr class="separator:ac29a387cc69c0d1abb2f2ef05dad1a6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef265b11f25357d520dcfd40aa8c18f3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a></td></tr>
<tr class="memdesc:aef265b11f25357d520dcfd40aa8c18f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">unsigned value used by the processor.  <a href="#aef265b11f25357d520dcfd40aa8c18f3">More...</a><br /></td></tr>
<tr class="separator:aef265b11f25357d520dcfd40aa8c18f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a430639fcfd4601cd6cb310ae71481fe1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="pro_8h.html#ac29a387cc69c0d1abb2f2ef05dad1a6f">adiff_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a430639fcfd4601cd6cb310ae71481fe1">sval_t</a></td></tr>
<tr class="memdesc:a430639fcfd4601cd6cb310ae71481fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">signed value used by the processor.  <a href="#a430639fcfd4601cd6cb310ae71481fe1">More...</a><br /></td></tr>
<tr class="separator:a430639fcfd4601cd6cb310ae71481fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad6b2dc3cbff040775e79656fe8e1a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ad6b2dc3cbff040775e79656fe8e1a3"></a>
typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9ad6b2dc3cbff040775e79656fe8e1a3">error_t</a></td></tr>
<tr class="memdesc:a9ad6b2dc3cbff040775e79656fe8e1a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error code (errno) <br /></td></tr>
<tr class="separator:a9ad6b2dc3cbff040775e79656fe8e1a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27a68e368795d52b94c3abc05b41ca3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27a68e368795d52b94c3abc05b41ca3f"></a>
typedef char&#160;</td><td class="memItemRight" valign="bottom"><b>op_dtype_t</b></td></tr>
<tr class="separator:a27a68e368795d52b94c3abc05b41ca3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3645c7d6d9f101f476e964504741b92b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3645c7d6d9f101f476e964504741b92b"></a>
typedef <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a></td></tr>
<tr class="memdesc:a3645c7d6d9f101f476e964504741b92b"><td class="mdescLeft">&#160;</td><td class="mdescRight">we use our own time type because time_t can be 32-bit or 64-bit depending on the compiler <br /></td></tr>
<tr class="separator:a3645c7d6d9f101f476e964504741b92b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a608a3fbc2403cb7e0b2314675c13f1ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a608a3fbc2403cb7e0b2314675c13f1ce"></a>
typedef <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a></td></tr>
<tr class="memdesc:a608a3fbc2403cb7e0b2314675c13f1ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">64-bit time value expressed as seconds and microseconds since the Epoch <br /></td></tr>
<tr class="separator:a608a3fbc2403cb7e0b2314675c13f1ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a386c10c6aa4340f1d63df85f40454fce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a386c10c6aa4340f1d63df85f40454fce"></a>
typedef <a class="el" href="class__qstring.html">_qstring</a>&lt; char &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a></td></tr>
<tr class="memdesc:a386c10c6aa4340f1d63df85f40454fce"><td class="mdescLeft">&#160;</td><td class="mdescRight">regular string <br /></td></tr>
<tr class="separator:a386c10c6aa4340f1d63df85f40454fce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fad0f3973de5825c480e27517e159f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7fad0f3973de5825c480e27517e159f3"></a>
typedef <a class="el" href="class__qstring.html">_qstring</a>&lt; <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a7fad0f3973de5825c480e27517e159f3">qtype</a></td></tr>
<tr class="memdesc:a7fad0f3973de5825c480e27517e159f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">type string <br /></td></tr>
<tr class="separator:a7fad0f3973de5825c480e27517e159f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1af89f7fa627fd5a720250e14256908"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1af89f7fa627fd5a720250e14256908"></a>
typedef <a class="el" href="class__qstring.html">_qstring</a>&lt; <a class="el" href="pro_8h.html#a14f3b825da8a4c7f4f29afd1e080e52b">wchar16_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae1af89f7fa627fd5a720250e14256908">qwstring</a></td></tr>
<tr class="memdesc:ae1af89f7fa627fd5a720250e14256908"><td class="mdescLeft">&#160;</td><td class="mdescRight">unicode string <br /></td></tr>
<tr class="separator:ae1af89f7fa627fd5a720250e14256908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a365b8d9a8d955b16727c711d50bec282"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a365b8d9a8d955b16727c711d50bec282"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a365b8d9a8d955b16727c711d50bec282">uvalvec_t</a></td></tr>
<tr class="memdesc:a365b8d9a8d955b16727c711d50bec282"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of unsigned values <br /></td></tr>
<tr class="separator:a365b8d9a8d955b16727c711d50bec282"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac6b9b69e8232ea018c7a234cc882fcd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac6b9b69e8232ea018c7a234cc882fcd"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="pro_8h.html#a430639fcfd4601cd6cb310ae71481fe1">sval_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#aac6b9b69e8232ea018c7a234cc882fcd">svalvec_t</a></td></tr>
<tr class="memdesc:aac6b9b69e8232ea018c7a234cc882fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of signed values <br /></td></tr>
<tr class="separator:aac6b9b69e8232ea018c7a234cc882fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f46d9d52bbfcc78bc1836f4f2683da4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f46d9d52bbfcc78bc1836f4f2683da4"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a9f46d9d52bbfcc78bc1836f4f2683da4">eavec_t</a></td></tr>
<tr class="memdesc:a9f46d9d52bbfcc78bc1836f4f2683da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of addresses <br /></td></tr>
<tr class="separator:a9f46d9d52bbfcc78bc1836f4f2683da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16a891be237a47eac68383da2ebc2fa6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16a891be237a47eac68383da2ebc2fa6"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a16a891be237a47eac68383da2ebc2fa6">intvec_t</a></td></tr>
<tr class="memdesc:a16a891be237a47eac68383da2ebc2fa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of integers <br /></td></tr>
<tr class="separator:a16a891be237a47eac68383da2ebc2fa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a823b67c620f6cdca97e1d969ea4a9b02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a823b67c620f6cdca97e1d969ea4a9b02"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a823b67c620f6cdca97e1d969ea4a9b02">qstrvec_t</a></td></tr>
<tr class="memdesc:a823b67c620f6cdca97e1d969ea4a9b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of strings <br /></td></tr>
<tr class="separator:a823b67c620f6cdca97e1d969ea4a9b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7fb122ad7ac49bded40ed26e0001849"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7fb122ad7ac49bded40ed26e0001849"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="pro_8h.html#ae1af89f7fa627fd5a720250e14256908">qwstring</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#af7fb122ad7ac49bded40ed26e0001849">qwstrvec_t</a></td></tr>
<tr class="memdesc:af7fb122ad7ac49bded40ed26e0001849"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of unicode strings <br /></td></tr>
<tr class="separator:af7fb122ad7ac49bded40ed26e0001849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a690f2078cd0bc5c9eb1b37c6daa123dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a690f2078cd0bc5c9eb1b37c6daa123dd"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a690f2078cd0bc5c9eb1b37c6daa123dd">boolvec_t</a></td></tr>
<tr class="memdesc:a690f2078cd0bc5c9eb1b37c6daa123dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of bools <br /></td></tr>
<tr class="separator:a690f2078cd0bc5c9eb1b37c6daa123dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fb92c6beff4e1e004a4ef5a2e356391"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3fb92c6beff4e1e004a4ef5a2e356391"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; size_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3fb92c6beff4e1e004a4ef5a2e356391">sizevec_t</a></td></tr>
<tr class="memdesc:a3fb92c6beff4e1e004a4ef5a2e356391"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of sizes <br /></td></tr>
<tr class="separator:a3fb92c6beff4e1e004a4ef5a2e356391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55dd00e03168fb5180830e87ef0a2c57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55dd00e03168fb5180830e87ef0a2c57"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a55dd00e03168fb5180830e87ef0a2c57">flags_t</a></td></tr>
<tr class="memdesc:a55dd00e03168fb5180830e87ef0a2c57"><td class="mdescLeft">&#160;</td><td class="mdescRight">32-bit flags for each address <br /></td></tr>
<tr class="separator:a55dd00e03168fb5180830e87ef0a2c57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8791d30d19843bc09b78bdf01a852ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8791d30d19843bc09b78bdf01a852ec"></a>
typedef <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a">ea_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ad8791d30d19843bc09b78bdf01a852ec">tid_t</a></td></tr>
<tr class="memdesc:ad8791d30d19843bc09b78bdf01a852ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">type id (for enums, structs, etc) <br /></td></tr>
<tr class="separator:ad8791d30d19843bc09b78bdf01a852ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3df5040891132e50157aee66affdf1de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3df5040891132e50157aee66affdf1de"></a>
typedef <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3df5040891132e50157aee66affdf1de">bgcolor_t</a></td></tr>
<tr class="memdesc:a3df5040891132e50157aee66affdf1de"><td class="mdescLeft">&#160;</td><td class="mdescRight">background color in RGB <br /></td></tr>
<tr class="separator:a3df5040891132e50157aee66affdf1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d227a0129097f194ff30166ba653d02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d227a0129097f194ff30166ba653d02"></a>
typedef <a class="el" href="classqvector.html">qvector</a>&lt; <a class="el" href="structchannel__redir__t.html">channel_redir_t</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a3d227a0129097f194ff30166ba653d02">channel_redirs_t</a></td></tr>
<tr class="memdesc:a3d227a0129097f194ff30166ba653d02"><td class="mdescLeft">&#160;</td><td class="mdescRight">vector of <a class="el" href="structchannel__redir__t.html" title="Tools for command line parsing. ">channel_redir_t</a> objects <br /></td></tr>
<tr class="separator:a3d227a0129097f194ff30166ba653d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a8fcacda1bd30d443b0a6b3e6b72d50"><td class="memItemLeft" align="right" valign="top">typedef int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a8a8fcacda1bd30d443b0a6b3e6b72d50">qthread_cb_t</a>(void *ud)</td></tr>
<tr class="memdesc:a8a8fcacda1bd30d443b0a6b3e6b72d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">THREADS.  <a href="#a8a8fcacda1bd30d443b0a6b3e6b72d50">More...</a><br /></td></tr>
<tr class="separator:a8a8fcacda1bd30d443b0a6b3e6b72d50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2561704a97dcdf2122a896301c1e8244"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2561704a97dcdf2122a896301c1e8244"></a>
typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a></td></tr>
<tr class="memdesc:a2561704a97dcdf2122a896301c1e8244"><td class="mdescLeft">&#160;</td><td class="mdescRight">MS Windows HANDLE. <br /></td></tr>
<tr class="separator:a2561704a97dcdf2122a896301c1e8244"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a665bbcc021b383d33fd7854024ac464c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a665bbcc021b383d33fd7854024ac464c"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a665bbcc021b383d33fd7854024ac464c">tty_control_t</a> { <b>TCT_UNKNOWN</b> = 0, 
<b>TCT_OWNER</b>, 
<b>TCT_NOT_OWNER</b>
 }</td></tr>
<tr class="memdesc:a665bbcc021b383d33fd7854024ac464c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Teletype control. <br /></td></tr>
<tr class="separator:a665bbcc021b383d33fd7854024ac464c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ae6695c86768c2156de5068ee322f6823"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6695c86768c2156de5068ee322f6823"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a0dcf39ba902e647b34f7d676b8897a2f">ida_export_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#ae6695c86768c2156de5068ee322f6823">is_ida_kernel</a></td></tr>
<tr class="memdesc:ae6695c86768c2156de5068ee322f6823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this IDA kernel? If not, we are executing a standalone application. <br /></td></tr>
<tr class="separator:ae6695c86768c2156de5068ee322f6823"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a634763e97c3f75cfe9d667a6f434f3ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a634763e97c3f75cfe9d667a6f434f3ad"></a>
<a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a0dcf39ba902e647b34f7d676b8897a2f">ida_export_data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pro_8h.html#a634763e97c3f75cfe9d667a6f434f3ad">under_debugger</a></td></tr>
<tr class="memdesc:a634763e97c3f75cfe9d667a6f434f3ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">is IDA running under a debugger? <br /></td></tr>
<tr class="separator:a634763e97c3f75cfe9d667a6f434f3ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ae990eacd438069f0807057f73f72a0e2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define C_INCLUDE</td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="pro_8h.html#a95e1d92b2619a326b2e86600f3d23100">EXTERNC</a> \</div>
<div class="line">   {</div>
<div class="ttc" id="pro_8h_html_a95e1d92b2619a326b2e86600f3d23100"><div class="ttname"><a href="pro_8h.html#a95e1d92b2619a326b2e86600f3d23100">EXTERNC</a></div><div class="ttdeci">#define EXTERNC</div><div class="ttdoc">specify C linkage </div><div class="ttdef"><b>Definition:</b> pro.h:129</div></div>
</div><!-- fragment -->
<p>helper for 'extern "C" {}' statements </p>

</div>
</div>
<a class="anchor" id="ae9c64f103d2b6ed1029fd06d99767c20"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define C_INCLUDE_END&#160;&#160;&#160;}</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>helper for 'extern "C" {}' statements </p>

</div>
</div>
<a class="anchor" id="a0fa907600e6cc20f050cc1049b27c599"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __MF__&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>byte sex of our platform (Most significant byte First). </p>
<p>0: little endian (Intel 80x86). 1: big endian (PowerPC). </p>

</div>
</div>
<a class="anchor" id="aefaead9521fa4ebbfc7add536c5b6625"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BPT&#160;&#160;&#160;__debugbreak()</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>trigger a breakpoint from IDA. </p>
<p>also see <a class="el" href="pro_8h.html#a89eca4309e9d7a0f6e26f7fb1998ccf7" title="Show internal error message and terminate execution abnormally. ">INTERR</a> </p>

</div>
</div>
<a class="anchor" id="a89eca4309e9d7a0f6e26f7fb1998ccf7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INTERR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">code</td><td>)</td>
          <td>&#160;&#160;&#160;do { if ( <a class="el" href="pro_8h.html#a634763e97c3f75cfe9d667a6f434f3ad">under_debugger</a> ) <a class="el" href="pro_8h.html#aefaead9521fa4ebbfc7add536c5b6625">BPT</a>; <a class="el" href="pro_8h.html#ae72a90f168783073acf8ab0e83711e60">interr</a>(code); } while(1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Show internal error message and terminate execution abnormally. </p>
<p>When IDA is being run under a debugger this will ensure that the debugger will break immediately. </p>

</div>
</div>
<a class="anchor" id="a23195218eef2cf21e2beae685a041783"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DELIMITER&#160;&#160;&#160;&quot;;&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delimiter of directory lists. </p>
<p>for MS DOS, Windows, other systems - ':' for Unix </p>

</div>
</div>
<a class="anchor" id="aef073c2546a5ff20623dcce4fe6edc74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define OPERATOR_NEW</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">count&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;new type[count]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>GCC does not check for an integer overflow in 'operator new[]'. </p>
<p>We have to do it ourselves. Please note that 'char' arrays can still be allocated with plain 'operator new'. </p>

</div>
</div>
<a class="anchor" id="a39e0abb77deaf9177890dae504e4fc1d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MC3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c3&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>(((((c3)&lt;&lt;8)|(c2))&lt;&lt;8)|c1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>We can not use multi-character constants because they are not portable - use this macro instead. </p>

</div>
</div>
<a class="anchor" id="afca0d2217a361502e60dea754441c5ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MC4</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c2, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c3, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">c4&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>(((((((c4)&lt;&lt;8)|(c3))&lt;&lt;8)|(c2))&lt;&lt;8)|c1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>We can not use multi-character constants because they are not portable - use this macro instead. </p>

</div>
</div>
<a class="anchor" id="a517be89e9f2bfad4c51a4068c5dc77f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define qhtons</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a54a82bd22ccc00a89d2b5bbfa79bead1">swap16</a>(x)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Switch endianness of given value. </p>

</div>
</div>
<a class="anchor" id="a66946ea07120d59c161f19efe39f9e18"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define qntohs</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#a54a82bd22ccc00a89d2b5bbfa79bead1">swap16</a>(x)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Switch endianness of given value. </p>

</div>
</div>
<a class="anchor" id="abcacc1695a4462b6330edf4516373362"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define qhtonl</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a>(x)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Switch endianness of given value. </p>

</div>
</div>
<a class="anchor" id="ac16afcc9f6b71f4afa81767b0cc21162"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define qntohl</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="pro_8h.html#ab29570d44c212315993dd9736de03558">swap32</a>(x)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Switch endianness of given value. </p>

</div>
</div>
<a class="anchor" id="a6ddc241de53ea1a3007a14b49301bfa4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APPCHAR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">buf, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">chr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>                                              \</div>
<div class="line">  {                                               \</div>
<div class="line">    char __chr = (chr);                           \</div>
<div class="line">    QASSERT(518, (buf) &lt; (end));                  \</div>
<div class="line">    *(buf)++ = __chr;                             \</div>
<div class="line">    if ( (buf) &gt;= (end) )                         \</div>
<div class="line">    {                                             \</div>
<div class="line">        (buf) = (end)-1;                          \</div>
<div class="line">        (buf)[0] = <span class="charliteral">&#39;\0&#39;</span>;                          \</div>
<div class="line">    }                                             \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Append a character to the buffer checking the buffer size. </p>

</div>
</div>
<a class="anchor" id="a3eedfe5c48c9950de88010445a06ed84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APPZERO</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">buf, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>                                              \</div>
<div class="line">  {                                               \</div>
<div class="line">    QASSERT(519, (buf) &lt; (end));                  \</div>
<div class="line">    *(buf) = <span class="charliteral">&#39;\0&#39;</span>;                                \</div>
<div class="line">  } <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Put a zero byte at buffer. </p>
<p>NB: does not increase buf pointer! </p>

</div>
</div>
<a class="anchor" id="afd4610b2c9454c75f1224a840b2b3d83"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APPEND</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">buf, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">end, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>                                              \</div>
<div class="line">  {                                               \</div>
<div class="line">    QASSERT(520, (buf) &lt; (end));                  \</div>
<div class="line">    const <span class="keywordtype">char</span> *__ida_in = (name);                \</div>
<div class="line">    while ( <span class="keyword">true</span> )                                \</div>
<div class="line">    {                                             \</div>
<div class="line">      if ( (buf) == (end)-1 )                     \</div>
<div class="line">      {                                           \</div>
<div class="line">        (buf)[0] = <span class="charliteral">&#39;\0&#39;</span>;                          \</div>
<div class="line">        break;                                    \</div>
<div class="line">      }                                           \</div>
<div class="line">      if ( (*(buf) = *__ida_in++) == <span class="charliteral">&#39;\0&#39;</span> )       \</div>
<div class="line">        break;                                    \</div>
<div class="line">      (buf)++;                                    \</div>
<div class="line">    }                                             \</div>
<div class="line">  } <span class="keywordflow">while</span> ( 0 )</div>
</div><!-- fragment -->
<p>Append a string to the buffer checking the buffer size. </p>

</div>
</div>
<a class="anchor" id="a8a9bf81106a431b4b6ad8574310b82ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_MEMORY_ALLOCATION_FUNCS</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">void</span> *<span class="keyword">operator</span> <span class="keyword">new</span>  (<span class="keywordtype">size_t</span> _s) { <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a138f907840f458d7f81be38acedabde5">qalloc_or_throw</a>(_s); } \</div>
<div class="line">      void *<span class="keyword">operator</span> <span class="keyword">new</span>[](<span class="keywordtype">size_t</span> _s) { <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a138f907840f458d7f81be38acedabde5">qalloc_or_throw</a>(_s); } \</div>
<div class="line">      void *<span class="keyword">operator</span> <span class="keyword">new</span>(<span class="keywordtype">size_t</span> <span class="comment">/*size*/</span>, <span class="keywordtype">void</span> *_v) { <span class="keywordflow">return</span> _v; }    \</div>
<div class="line">      void <span class="keyword">operator</span> <span class="keyword">delete</span>  (<span class="keywordtype">void</span> *_blk) { <a class="code" href="pro_8h.html#a69f9c35c61878b9b72795fa0f47afa26">qfree</a>(_blk); }             \</div>
<div class="line">      void <span class="keyword">operator</span> <span class="keyword">delete</span>[](<span class="keywordtype">void</span> *_blk) { <a class="code" href="pro_8h.html#a69f9c35c61878b9b72795fa0f47afa26">qfree</a>(_blk); }             \</div>
<div class="line">      PLACEMENT_DELETE</div>
<div class="ttc" id="pro_8h_html_a138f907840f458d7f81be38acedabde5"><div class="ttname"><a href="pro_8h.html#a138f907840f458d7f81be38acedabde5">qalloc_or_throw</a></div><div class="ttdeci">idaman THREAD_SAFE void *ida_export qalloc_or_throw(size_t size)</div><div class="ttdoc">qalloc() &#39;size&#39; bytes, and throw a "not enough memory" error if failed </div></div>
<div class="ttc" id="pro_8h_html_a69f9c35c61878b9b72795fa0f47afa26"><div class="ttname"><a href="pro_8h.html#a69f9c35c61878b9b72795fa0f47afa26">qfree</a></div><div class="ttdeci">idaman THREAD_SAFE void ida_export qfree(void *alloc)</div><div class="ttdoc">System independent free. </div></div>
</div><!-- fragment -->
<p>Convenience macro to declare memory allocation functions. </p>
<p>It must be used for all classes that can be allocated/freed by the IDA kernel. </p>

</div>
</div>
<a class="anchor" id="a48f62c4a83ee1e96d41799e9df33bbd1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_COMPARISON_OPERATORS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) == 0; }      \</div>
<div class="line">  bool operator!=(<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) != 0; }      \</div>
<div class="line">  bool <a class="code" href="typeinf_8hpp.html#a70005e2dc82d5818a03340e48458ce00">operator&lt; </a>(<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) &lt;  0; }      \</div>
<div class="line">  bool operator&gt; (<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) &gt;  0; }      \</div>
<div class="line">  bool operator&lt;=(<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) &lt;= 0; }      \</div>
<div class="line">  bool operator&gt;=(<span class="keyword">const</span> type &amp;r)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(r) &gt;= 0; }</div>
<div class="ttc" id="pro_8h_html_a6d76b0cbdd0016e7cfd98cd42fbde81d"><div class="ttname"><a href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a></div><div class="ttdeci">int compare(const T &amp;a, const T &amp;b)</div><div class="ttdoc">Template to compare any 2 values of the same type. Returns -1/0/1. </div><div class="ttdef"><b>Definition:</b> pro.h:3175</div></div>
<div class="ttc" id="typeinf_8hpp_html_a70005e2dc82d5818a03340e48458ce00"><div class="ttname"><a href="typeinf_8hpp.html#a70005e2dc82d5818a03340e48458ce00">operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const bytevec_t &amp;v1, const bytevec_t &amp;v2)</div><div class="ttdoc">Compare two bytevecs with &#39;<&#39;. </div><div class="ttdef"><b>Definition:</b> typeinf.hpp:523</div></div>
</div><!-- fragment -->
<p>Macro to declare standard inline comparison operators. </p>

</div>
</div>
<a class="anchor" id="a513bf95ac8018cd74cd85b0444961def"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_COMPARISONS</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">type</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="pro_8h.html#a48f62c4a83ee1e96d41799e9df33bbd1">DECLARE_COMPARISON_OPERATORS</a>(type) \</div>
<div class="line">  friend <span class="keywordtype">int</span> <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(<span class="keyword">const</span> type &amp;a, <span class="keyword">const</span> type &amp;b) { <span class="keywordflow">return</span> a.compare(b); } \</div>
<div class="line">  int <a class="code" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a>(<span class="keyword">const</span> type &amp;r) <span class="keyword">const</span></div>
<div class="ttc" id="pro_8h_html_a6d76b0cbdd0016e7cfd98cd42fbde81d"><div class="ttname"><a href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d">compare</a></div><div class="ttdeci">int compare(const T &amp;a, const T &amp;b)</div><div class="ttdoc">Template to compare any 2 values of the same type. Returns -1/0/1. </div><div class="ttdef"><b>Definition:</b> pro.h:3175</div></div>
<div class="ttc" id="pro_8h_html_a48f62c4a83ee1e96d41799e9df33bbd1"><div class="ttname"><a href="pro_8h.html#a48f62c4a83ee1e96d41799e9df33bbd1">DECLARE_COMPARISON_OPERATORS</a></div><div class="ttdeci">#define DECLARE_COMPARISON_OPERATORS(type)                                                        </div><div class="ttdoc">Macro to declare standard inline comparison operators. </div><div class="ttdef"><b>Definition:</b> pro.h:1578</div></div>
</div><!-- fragment -->
<p>Macro to declare comparisons for our classes. </p>
<p>All comparison operators call the <a class="el" href="pro_8h.html#a6d76b0cbdd0016e7cfd98cd42fbde81d" title="Template to compare any 2 values of the same type. Returns -1/0/1. ">compare()</a> function which returns -1/0/1 </p>

</div>
</div>
<a class="anchor" id="a45e30617d8d7258e222d433f1bd1e07c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_REVERSE_ITERATOR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">riter, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">iter&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keyword">class </span>riter                                                           \</div>
<div class="line">  {                                                                     \</div>
<div class="line">    iter p;                                                             \</div>
<div class="line">  public:                                                               \</div>
<div class="line">    riter(<span class="keywordtype">void</span>) {}                                                      \</div>
<div class="line">    riter(<span class="keyword">const</span> iter &amp;x) : p(x) {}                                      \</div>
<div class="line">    typename iter::value_type &amp;operator*(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ iter q=p; <span class="keywordflow">return</span> *--q; }  \</div>
<div class="line">    typename iter::value_type *operator-&gt;(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;(operator*()); } \</div>
<div class="line">    riter &amp;operator++(<span class="keywordtype">void</span>) { --p; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }                      \</div>
<div class="line">    riter  operator++(<span class="keywordtype">int</span>) { iter q=p; --p; <span class="keywordflow">return</span> q; }                 \</div>
<div class="line">    riter &amp;operator--(<span class="keywordtype">void</span>) { ++p; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }                      \</div>
<div class="line">    riter  operator--(<span class="keywordtype">int</span>) { iter q=p; ++p; <span class="keywordflow">return</span> q; }                 \</div>
<div class="line">    bool operator==(<span class="keyword">const</span> riter &amp;x)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p == x.p; }          \</div>
<div class="line">    bool operator!=(<span class="keyword">const</span> riter &amp;x)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p != x.p; }          \</div>
<div class="line">  };</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a411df2435fac0228ade05b83af598353"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_VIRTUAL_DTOR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name</td><td>)</td>
          <td>&#160;&#160;&#160;virtual ~name(void) {}</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>GCC generates multiple destructors and they occupy multiple slots of the virtual function table. </p>
<p>Since it makes the vft incompatible with other compilers - we simply never generate virtual destructors for gcc. This is not an ideal solution but it works. We have this problem only under MS Windows. On other platforms everything is compiled with GCC so the vft layout is the same for the kernel and plugins. </p>

</div>
</div>
<a class="anchor" id="ac5cc6b4d725987053d84b6e27fca1b56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_UNCOPYABLE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">T</td><td>)</td>
          <td>&#160;&#160;&#160;T &amp;operator=(const T &amp;); T(const T &amp;);</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Declare class as uncopyable. </p>
<p>(copy assignment and copy ctr are undefined, so if anyone calls them, there will be a compilation or link error) </p>

</div>
</div>
<a class="anchor" id="a56b8c0b48c8e29849467170ad19ac801"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define BELOW_NORMAL_PRIORITY_CLASS&#160;&#160;&#160;0x00004000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>old Visual C++ compilers were not defining this </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ab65ed42d67e6c517c746ff2a6a187016"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef ptrdiff_t <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signed size_t - used to check for size overflows when the counter becomes negative. </p>
<p>Also signed size_t allows us to signal an error condition using a negative value, for example, as a function return value. </p>

</div>
</div>
<a class="anchor" id="aef265b11f25357d520dcfd40aa8c18f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="pro_8h.html#adbc570541d9f9a0c4489f9f1fe5f5699">asize_t</a> <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>unsigned value used by the processor. </p>
<ul>
<li>for 32-bit <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> - <a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e" title="unsigned 32 bit value ">uint32</a></li>
<li>for 64-bit <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> - <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda" title="unsigned 64 bit value ">uint64</a> </li>
</ul>

</div>
</div>
<a class="anchor" id="a430639fcfd4601cd6cb310ae71481fe1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="pro_8h.html#ac29a387cc69c0d1abb2f2ef05dad1a6f">adiff_t</a> <a class="el" href="pro_8h.html#a430639fcfd4601cd6cb310ae71481fe1">sval_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>signed value used by the processor. </p>
<ul>
<li>for 32-bit <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> - <a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8" title="signed 32 bit value ">int32</a></li>
<li>for 64-bit <a class="el" href="pro_8h.html#a7b0aeaed04e477c02cf8ea3452002d1a" title="effective address ">ea_t</a> - <a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a" title="signed 64 bit value ">int64</a> </li>
</ul>

</div>
</div>
<a class="anchor" id="a8a8fcacda1bd30d443b0a6b3e6b72d50"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> qthread_cb_t(void *ud)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>THREADS. </p>
<p>Thread callback function </p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a0f5fbc936e262a0d8ccdec9beb848331"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a2eb6f9e0395b47b8d5e3eeae4fe0c116">INLINE</a> <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce">qtime64_t</a> make_qtime64 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td>
          <td class="paramname"><em>secs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DEFARG(<a class="el" href="pro_8h.html#a56f1a81c92849566ae864511088eb7e8">int32</a> usecs, 0)&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a <a class="el" href="pro_8h.html#a608a3fbc2403cb7e0b2314675c13f1ce" title="64-bit time value expressed as seconds and microseconds since the Epoch ">qtime64_t</a> instance from a seconds value and microseconds value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">secs</td><td>seconds </td></tr>
    <tr><td class="paramname">usecs</td><td>microseconds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1a664397b8a8fca96db609128e0ed314"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qctime </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a>&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts calendar time into a string. </p>
<p>Puts 'wrong timestamp\n' into the buffer if failed </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of the output buffer </td></tr>
    <tr><td class="paramname">t</td><td>calendar time </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a430b7ab0ffcb2caf063a4956ac8e09a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qctime_utc </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a>&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts calendar time into a string using Coordinated Universal Time (UTC). </p>
<p>Function is equivalent to asctime(gmtime(t)). Puts 'wrong timestamp\n' into the buffer if failed. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">bufsize</td><td>of the output buffer </td></tr>
    <tr><td class="paramname">t</td><td>calendar time </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="ad50fcd84175debbba44150dbb6073052"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qlocaltime </td>
          <td>(</td>
          <td class="paramtype">struct tm *&#160;</td>
          <td class="paramname"><em>_tm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a>&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Converts a time value to a tm structure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">_tm</td><td>result </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">t</td><td>local time </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="a3e11e15611997881aaf72aaa888cd5b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qstrftime </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3645c7d6d9f101f476e964504741b92b">qtime32_t</a>&#160;</td>
          <td class="paramname"><em>t</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get string representation of a qtime32_t. </p>
<p>Copies into 'buf' the content of 'format', expanding its format specifiers into the corresponding values that represent the time described in 't', with a limit of 'bufsize' characters see <a href="http://www.cplusplus.com/reference/ctime/strftime/">http://www.cplusplus.com/reference/ctime/strftime/</a> for more </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">bufsize</td><td>of the output buffer </td></tr>
    <tr><td class="paramname">format</td><td>format string </td></tr>
    <tr><td class="paramname">t</td><td>time value </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>length of the resulting string </dd></dl>

</div>
</div>
<a class="anchor" id="a07e890e75db386ca89e65cf81078ecee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_nsec_stamp </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>High resolution timer. </p>
<p>On Unix systems, returns current time in nanoseconds. On Windows, returns a high resolution counter (QueryPerformanceCounter) </p><dl class="section return"><dt>Returns</dt><dd>stamp in nanoseconds </dd></dl>

</div>
</div>
<a class="anchor" id="a949364582660e112cde2942431fdd506"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> gen_rand_buf </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate a random buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">buffer</td><td>pointer to result </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">bufsz</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="aa6f63034dc8c1a2f236987740a6623dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> memrev </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reverse memory block. </p>
<p>Analog of strrev() function </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>pointer to buffer to reverse </td></tr>
    <tr><td class="paramname">size</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to buffer </dd></dl>

</div>
</div>
<a class="anchor" id="a18ffa492cbd3c5042ecfa00960e7b8a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> strrpl </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>char1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>char2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Replace all occurrences of a character within a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>to modify </td></tr>
    <tr><td class="paramname">char1</td><td>char to be replaced </td></tr>
    <tr><td class="paramname">char2</td><td>replacement char </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to resulting string </dd></dl>

</div>
</div>
<a class="anchor" id="a48bedaa8e04ef630a5fe86a83ae8b926"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char* tail </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get tail of a string. </p>

</div>
</div>
<a class="anchor" id="af74a1e4b6b49709fc024d286568c2878"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qstrncpy </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>dstsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A safer strncpy - makes sure that there is a terminating zero. </p>
<p>nb: this function doesn't fill the whole buffer zeroes as strncpy does nb: ssize_t(dstsize) must be &gt; 0 </p>

</div>
</div>
<a class="anchor" id="a3c7dc639641cee1de7d4d90de696b589"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> stristr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find one string in another (Case insensitive analog of strstr()). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">s1</td><td>string to be searched </td></tr>
    <tr><td class="paramname">s2</td><td>string to search for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the first occurrence of s2 within s1, NULL if none exists </dd></dl>

</div>
</div>
<a class="anchor" id="a509e62fac4101d287473b116b44e0de6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GCC_DIAG_OFF </td>
          <td>(</td>
          <td class="paramtype">format-&#160;</td>
          <td class="paramname"><em>nonliteral</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>qsnprintf that does not check its arguments. </p>
<p>Normally gcc complains about the non-literal formats. However, sometimes we still need to call qsnprintf with a dynamically built format string. OTOH, there are absolutely no checks of the input arguments, so be careful! </p>

</div>
</div>
<a class="anchor" id="ae31a114fc211533f7589d5ebc12ea214"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qmakepath </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct a path from a null-terminated sequence of strings. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer. Can be == s1, but must not be NULL </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to result </dd></dl>

</div>
</div>
<a class="anchor" id="af01b16b705d2cebea26f158d00e6fb56"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qgetcwd </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the current working directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of buffer This function calls <a class="el" href="kernwin_8hpp.html#a6c448838751433bfda04dcdb8d8b1457" title="Display error dialog box and exit. ">error()</a> if any problem occurs. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a91ac920d58e898fcc166659cd1ea7a97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qchdir </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change the current working directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the new directory The possible return values are the same as those of the POSIX 'chdir' </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae2e087544b6da9a900418f117ebc8002"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qdirname </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the directory part of the path. </p>
<p>path and buf may point to the same buffer </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">buf</td><td>buffer for the directory part. can be NULL. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">bufsize</td><td>size of this buffer </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">path</td><td>path to split </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>ok </td></tr>
    <tr><td class="paramname">false</td><td>input buffer did not have the directory part. In this case the buffer is filled with "." </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a44d6db2829e60d14c9b2889bbead48d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qmakefile </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct filename from base name and extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer. Can be == base, but must not be NULL </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of buffer </td></tr>
    <tr><td class="paramname">base</td><td>base name </td></tr>
    <tr><td class="paramname">ext</td><td>extension </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to result </dd></dl>

</div>
</div>
<a class="anchor" id="aa3375d2d7a58e2655f52bd7d4ec67fba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qsplitfile </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>ext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Split filename into base name and extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>filename, may be changed </td></tr>
    <tr><td class="paramname">base</td><td>filled with base part, can be NULL </td></tr>
    <tr><td class="paramname">ext</td><td>filled with extension part, can be NULL </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the base part </dd></dl>

</div>
</div>
<a class="anchor" id="ab740dfcab12d40de3733bf9bf414e65c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qbasename </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the file name part of the given path. </p>
<dl class="section return"><dt>Returns</dt><dd>NULL if path is NULL </dd></dl>

</div>
</div>
<a class="anchor" id="a855654422b31a8bdaa4f3e0260536b90"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> search_path </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>search_cwd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Search for a file in the PATH environment variable or the current directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer to hold the full file path </td></tr>
    <tr><td class="paramname">bufsize</td><td>output buffer size </td></tr>
    <tr><td class="paramname">file</td><td>the file name to look for. If the file is an absolute path then buf will return the file value. </td></tr>
    <tr><td class="paramname">search_cwd</td><td>search the current directory if file was not found in the PATH </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the file was found and false otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="ac0f51308d40e1c7024530036295239ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> set_file_ext </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>outbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set file name extension unconditionally. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">outbuf</td><td>buffer to hold the answer. may be the same as the file name. </td></tr>
    <tr><td class="paramname">bufsize</td><td>output buffer size </td></tr>
    <tr><td class="paramname">file</td><td>the file name </td></tr>
    <tr><td class="paramname">ext</td><td>new extension (with or without '.') </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the new file name </dd></dl>

</div>
</div>
<a class="anchor" id="a06be4849edd0436c49fae0e993b19c6f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> const char* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> get_file_ext </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get pointer to extension of file name. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the file extension or NULL if extension doesn't exist </dd></dl>

</div>
</div>
<a class="anchor" id="aab6c86016f76c42f57525de46eb867ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="pro_8h.html#a6505e7ff3b129d8b17258304886fd133">idaapi</a> make_file_ext </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set file name extension if none exists. </p>
<p>This function appends the extension to a file name. It won't change file name if extension already exists </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>output buffer </td></tr>
    <tr><td class="paramname">bufsize</td><td>size of the output buffer </td></tr>
    <tr><td class="paramname">file</td><td>file name </td></tr>
    <tr><td class="paramname">ext</td><td>extension (with or without '.') </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the new file name </dd></dl>

</div>
</div>
<a class="anchor" id="a24d4be9480f8a3318a4ba81d3f95e9dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> sanitize_file_name </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>namesize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sanitize the file name. </p>
<p>Remove the directory path, and replace wildcards ? * and chars&lt;' ' with _. If the file name is empty, then:</p><ul>
<li>namesize != 0: generate a new temporary name, return true</li>
<li>namesize == 0: return false </li>
</ul>

</div>
</div>
<a class="anchor" id="adb85238b55ebc4b0e2fcfcb989cf3721"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qopen </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="a815b8597cab8f72ee0c33a12faa9077b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qread </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="a91ddbdcbaaaa41eb39912b2ceeb829c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qwrite </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="aee05a09c3b442f6af2d8af9d8a1e12b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qtell </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="a98bac18686a4052c3b9e2d76a44524b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a42ae75d34f73b9e691bd16aaddb897e5">qoff64_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qseek </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#af755b91e0abdf71f5715f00e68b35e0a">int64</a>&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>whence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="ad58bc7cc6feca35b319505e5379e7f38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qclose </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="abd74367683c971ceea2ac42236e4f5f4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qdup </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="aa3fd66082d6e27e780227c95cfe3a4fe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qfsync </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Works the same as it's counterpart from Clib. </p>
<p>The only difference is that it sets 'qerrno' variable too </p>

</div>
</div>
<a class="anchor" id="a6b8fcb778c6ac0688ede38fc29dd59a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qfilesize </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the file size. </p>
<p>This function may return 0 if the file is not found. </p>

</div>
</div>
<a class="anchor" id="a92145319fc95e6fab3d6677769fd297e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qfilelength </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get file length in bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>file descriptor </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>file length in bytes, -1 if error </dd></dl>

</div>
</div>
<a class="anchor" id="a0d3ca4021b1d308dd1aeabeab2aac16f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qchsize </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a>&#160;</td>
          <td class="paramname"><em>fsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change file size. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>file descriptor </td></tr>
    <tr><td class="paramname">fsize</td><td>desired size </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>on success </td></tr>
    <tr><td class="paramname">-1</td><td>otherwise and qerrno is set </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94b2c796631d884d94d8d0008c79331e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qmkdir </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an empty directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">file</td><td>name (or full path) of directory to be created </td></tr>
    <tr><td class="paramname">mode</td><td>permissions (only used on unix systems) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 success </dd>
<dd>
-1 otherwise and qerrno is set </dd></dl>

</div>
</div>
<a class="anchor" id="a53e88c62090838e19cb5ee945d7ab8f7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#aa1728270d73c5d1598de1fd691762eb1">NORETURN</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qexit </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call qatexit functions, shut down UI and kernel, and exit. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>exit code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a19938e0c6923854730fbf2409ccbf7b9"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T left_shift </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>shift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift by the amount exceeding the operand size*8 is undefined by the standard. </p>
<p>Indeed, GNUC may decide not to rotate the operand in some cases. We have to check this manually. </p>

</div>
</div>
<a class="anchor" id="a5ed01e11088da1be63006aa766c695c7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T right_ushift </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>shift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift by the amount exceeding the operand size*8 is undefined by the standard. </p>
<p>Indeed, GNUC may decide not to rotate the operand in some cases. We have to check this manually. </p>

</div>
</div>
<a class="anchor" id="ae82c1a4b9799b62167768bbea36d0424"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T right_sshift </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>shift</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift by the amount exceeding the operand size*8 is undefined by the standard. </p>
<p>Indeed, GNUC may decide not to rotate the operand in some cases. We have to check this manually. </p>

</div>
</div>
<a class="anchor" id="ab73f409fbca4369979fd0966614bf466"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> extend_sign </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2f5563986d7f95e4fad5876c17d9cdda">uint64</a>&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nbytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>sign_extend</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sign-, or zero-extend the value 'v' to occupy 64 bits. </p>
<p>The value 'v' is considered to be of size 'nbytes'. </p>

</div>
</div>
<a class="anchor" id="a8055a8933883a1ba50a059a3edba1faf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> readbytes </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read at most 4 bytes from file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>file handle </td></tr>
    <tr><td class="paramname">res</td><td>value read from file </td></tr>
    <tr><td class="paramname">size</td><td>size of value in bytes (1,2,4) </td></tr>
    <tr><td class="paramname">mf</td><td>is MSB first? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, nonzero otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a65f7acee9458c297dab692697ba52acd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> writebytes </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td>
          <td class="paramname"><em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write at most 4 bytes to file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>file handle </td></tr>
    <tr><td class="paramname">l</td><td>value to write </td></tr>
    <tr><td class="paramname">size</td><td>size of value in bytes (1,2,4) </td></tr>
    <tr><td class="paramname">mf</td><td>is MSB first? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, nonzero otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a4cfaaa6d8c42a61ad442098346a71f7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> read2bytes </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a05f6b0ae8f6a6e135b0e290c25fe0e4e">uint16</a> *&#160;</td>
          <td class="paramname"><em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>mf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a 2 byte entity from a file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>file handle </td></tr>
    <tr><td class="paramname">res</td><td>value read from file </td></tr>
    <tr><td class="paramname">mf</td><td>is MSB first? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, nonzero otherwise </dd></dl>

</div>
</div>
<a class="anchor" id="a54a82bd22ccc00a89d2b5bbfa79bead1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a> swap16 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#ab95f123a6c9bcfee6a343170ef8c5f69">ushort</a>&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Switch endianness of given value. </p>

</div>
</div>
<a class="anchor" id="a435fea957a4f3f87b0d4b183cc286e90"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> swap_value </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Swap endianness of a given value in memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>result of swap </td></tr>
    <tr><td class="paramname">src</td><td>value to be swapped </td></tr>
    <tr><td class="paramname">size</td><td>size of value: can be 1, 2, 4, 8, or 16. For any other values of size this function does nothing </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acc8d0eeac106017d7447fd2c69710121"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> rotate_left </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#aef265b11f25357d520dcfd40aa8c18f3">uval_t</a>&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bits</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rotate left - can be used to rotate a value to the right if the count is negative. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>value to rotate </td></tr>
    <tr><td class="paramname">count</td><td>shift amount </td></tr>
    <tr><td class="paramname">bits</td><td>number of bits to rotate (32 will rotate a dword) </td></tr>
    <tr><td class="paramname">offset</td><td>number of first bit to rotate. (bits=8 offset=16 will rotate the third byte of the value) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the rotated value </dd></dl>

</div>
</div>
<a class="anchor" id="a577328d386c616047f7fa85263433d5c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qvector_reserve </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>old</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>cnt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>elsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change capacity of given qvector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>a pointer to a qvector </td></tr>
    <tr><td class="paramname">old</td><td>a pointer to the qvector's array </td></tr>
    <tr><td class="paramname">cnt</td><td>number of elements to reserve </td></tr>
    <tr><td class="paramname">elsize</td><td>size of each element </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the newly allocated array </dd></dl>

</div>
</div>
<a class="anchor" id="a9e45a87c365b2c527c9104ab08788ab0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int lexcompare </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Standard lexical comparison. </p>
<dl class="section return"><dt>Returns</dt><dd>-1 if a &lt; b, 1 if a &gt; b, and 0 if a == b </dd></dl>

</div>
</div>
<a class="anchor" id="a6de7451013440529ab09bddd991960de"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">int lexcompare_vectors </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Lexical comparison of two vectors. </p>
<p>Also see <a class="el" href="pro_8h.html#a9e45a87c365b2c527c9104ab08788ab0" title="Standard lexical comparison. ">lexcompare()</a>. </p><dl class="section return"><dt>Returns</dt><dd>0 if the two vectors are identical 1 if 'a' is larger than 'b' -1 if 'a' is smaller than 'b' otherwise return the first nonzero lexical comparison between each element in 'a' and 'b' </dd></dl>

</div>
</div>
<a class="anchor" id="ab1debbc49691c4bd98960efd6d62eff8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> base64_decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classbytevec__t.html">bytevec_t</a> *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode base64. </p>
<p>Decode base64 </p>

</div>
</div>
<a class="anchor" id="abe11d9e0e16f57ff96ebc5c2f65fb655"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> replace_tabs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>tabsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert tabulations to spaces. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>output buffer to append to </td></tr>
    <tr><td class="paramname">str</td><td>input string. can not be equal to out-&gt;c_str() </td></tr>
    <tr><td class="paramname">tabsize</td><td>tabulation size </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true-replaced some tabs </dd></dl>

</div>
</div>
<a class="anchor" id="a0ee918b56f592ac4e45de9a0f71c9b8e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> is_valid_utf8 </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Does byte sequence consist of valid UTF-8-encoded codepoints? </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>the byte sequence </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>success </dd></dl>

</div>
</div>
<a class="anchor" id="ac08de96f994904782b20c195dc64f3b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> idb_utf8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nsyms</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>IDB default C string encoding -&gt; UTF-8. </p>
<dl class="section return"><dt>Returns</dt><dd>success (i.e., all bytes converted) </dd></dl>

</div>
</div>
<a class="anchor" id="a2fcf1d47dcb9f3ccb3506388d3604ab0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> skip_utf8 </td>
          <td>(</td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>putf8</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Advance by n codepoints into the UTF-8 buffer. </p>
<p>Each bad byte (i.e., can't be decoded as UTF-8) will count as 1 codepoint. In addition, encountering an unexpected end-of-string (i.e., '\0') will cause this function to stop and return a non-zero value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">putf8</td><td>a pointer to the UTF-8 bytes buffer to advance into </td></tr>
    <tr><td class="paramname">n</td><td>the number of codepoints to advance into the buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of codepoints that we failed to decode, thus: 0 - success, &gt;0 - a terminating zero was encountered. </dd></dl>

</div>
</div>
<a class="anchor" id="a91ee95acb00f15fbd341d33e81970f13"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> put_utf8_char </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a0cb2c72a19890e3551e2d74193b9c115">wchar32_t</a>&#160;</td>
          <td class="paramname"><em>cp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode the codepoint into a UTF-8 byte sequence, and add terminating zero. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>output buffer (must be at least MAX_UTF8_SEQ_LEN bytes wide) </td></tr>
    <tr><td class="paramname">cp</td><td>the codepoint to encode </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>how many bytes were put into the output buffer (without the terminating zero), or size_t(-1) on failure </dd></dl>

</div>
</div>
<a class="anchor" id="ae52a058abfcbb3f763e7b1beaab6f733"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> convert_encoding </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classbytevec__t.html">bytevec_t</a> *&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fromcode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>tocode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="pro_8h.html#a65f85814a8290f9797005d3b28e7e5fc">uchar</a> *&#160;</td>
          <td class="paramname"><em>indata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a>&#160;</td>
          <td class="paramname"><em>insize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DEFARG(int flags, 0)&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert data from encoding fromcode into tocode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flags</td><td>see CEF_* </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of input bytes converted (can be less than actual size if there was an invalid character) -1 if source or target encoding is not supported possible encoding names: windows codepages ("CP1251" etc), charset names ("Shift-JIS"), and many encodings supported by iconv </dd></dl>

</div>
</div>
<a class="anchor" id="a2e1f8e01bb2f7b93ad1bd6b51797c2fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> size_t <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> parse_command_line </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a823b67c620f6cdca97e1d969ea4a9b02">qstrvec_t</a> *&#160;</td>
          <td class="paramname"><em>args</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a3d227a0129097f194ff30166ba653d02">channel_redirs_t</a> *&#160;</td>
          <td class="paramname"><em>redirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>cmdline</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse a space separated string (escaping with backslash is supported). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">args</td><td>a string vector to hold the results </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">redirs</td><td>map of channel redirections found in cmdline<ul>
<li>if NULL, redirections won't be parsed</li>
<li>if there are syntax errors in redirections, consider them as arguments </li>
</ul>
</td></tr>
    <tr><td class="paramdir"></td><td class="paramname">cmdline</td><td>the string to be parsed </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">flags</td><td><a class="el" href="group___l_p__.html#gaaf7d57c6fd05fd8a992d28d924310092" title="&#39;args&#39; contains executable path too ">LP_PATH_WITH_ARGS</a> or 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of parsed arguments </dd></dl>

</div>
</div>
<a class="anchor" id="a5ba3e060917a3e5b8402d2157607803c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char** expand_argv </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>p_argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *const&#160;</td>
          <td class="paramname"><em>argv</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy and expand command line arguments. </p>
<p>For '' arguments the file contents are inserted into the resulting argv. Format of the file: one switch per line, ';' for comment lines On windows, argv will also be interpreted as OEM codepage, and will be decoded as such and re-encoded into UTF-8. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">p_argc</td><td>size of the returned argv array </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">argc</td><td>number of entries in argv array </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">argv</td><td>array of strings </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new argv (terminated by NULL). It must be freed with <a class="el" href="pro_8h.html#aa3414fce0fc99ab9d2f82334183a866d" title="Free &#39;argc&#39; elements of &#39;argv&#39;. ">free_argv()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ac85b202fd5a03476ee1af8696c9de487"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> quote_cmdline_arg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Quote a command line argument if it contains escape characters. </p>
<p>For example, *.c will be converted into "*.c" because * may be inadvertently expanded by the shell </p><dl class="section return"><dt>Returns</dt><dd>true: modified 'arg' </dd></dl>

</div>
</div>
<a class="anchor" id="a75e47f39d16ac90b4e158db16114e7a0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> parse_dbgopts </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structinstant__dbgopts__t.html">instant_dbgopts_t</a> *&#160;</td>
          <td class="paramname"><em>ido</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>r_switch</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse the -r command line switch (for instant debugging). </p>
<p>r_switch points to the value of the -r switch. Example: win32+ </p><dl class="section return"><dt>Returns</dt><dd>true-ok, false-parse error </dd></dl>

</div>
</div>
<a class="anchor" id="a0c392bfd687547ec1a2d755281179e0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void* <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> launch_process </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structlaunch__process__params__t.html">launch_process_params_t</a> &amp;&#160;</td>
          <td class="paramname"><em>lpp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a386c10c6aa4340f1d63df85f40454fce">qstring</a> *&#160;</td>
          <td class="paramname"><em>errbuf</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Launch the specified process in parallel. </p>
<dl class="section return"><dt>Returns</dt><dd>handle (unix: child pid), NULL - error </dd></dl>

</div>
</div>
<a class="anchor" id="a2c629c6befea4d059905c0d4672ffce7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> term_process </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Forcibly terminate a running process. </p>
<dl class="section return"><dt>Returns</dt><dd>0-ok, otherwise an error code that can be passed to <a class="el" href="err_8h.html#ab4511117132fa14e07ceb3c8b7101949" title="Get error message for MS Windows error codes. ">winerr()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2bbea1080e3dafb9fa04cd2bc1446532"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qwait_timed </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>child</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout_ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for state changes in a child process (UNIX only). </p>
<p>Here: child, status, flags - the same as in system call <a class="el" href="pro_8h.html#a0ff9ced808887c13e8b64c783f4b9f56" title="use qwait() ">waitpid()</a> </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">timeout_ms</td><td>timeout in milliseconds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa8133390ab4d182d5735f10e2ddf93c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> check_process_exit </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>exit_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DEFARG(int msecs,-1)&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether process has terminated or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">handle</td><td>process handle to wait for </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">exit_code</td><td>pointer to the buffer for the exit code </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">msecs</td><td>how long to wait. special values:<ul>
<li>0: do not wait</li>
<li>1 or -1: wait infinitely</li>
<li>other values: timeout in milliseconds </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>process has exited, and the exit code is available. if *exit_code &lt; 0: the process was killed with a signal -*exit_code </td></tr>
    <tr><td class="paramname">1</td><td>process has not exited yet </td></tr>
    <tr><td class="paramname">-1</td><td>error happened, see error code for <a class="el" href="err_8h.html#ab4511117132fa14e07ceb3c8b7101949" title="Get error message for MS Windows error codes. ">winerr()</a> in *exit_code </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a07c66801ba4bb5f1a1e68c379d4283c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> enum <a class="el" href="pro_8h.html#a665bbcc021b383d33fd7854024ac464c">tty_control_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> is_control_tty </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the current process is the owner of the TTY specified by 'fd' (typically an opened descriptor to /dev/tty). </p>

</div>
</div>
<a class="anchor" id="a2b930155eb685212db11fb14d2444313"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qdetach_tty </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If the current terminal is the controlling terminal of the calling process, give up this controlling terminal. </p>
<dl class="section note"><dt>Note</dt><dd>The current terminal is supposed to be /dev/tty </dd></dl>

</div>
</div>
<a class="anchor" id="a60084934decaa09c664279c8546eda4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> void <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qcontrol_tty </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make the current terminal the controlling terminal of the calling process. </p>
<dl class="section note"><dt>Note</dt><dd>The current terminal is supposed to be /dev/tty </dd></dl>

</div>
</div>
<a class="anchor" id="ab8ba72892569a9b71dd5ea7f94e6819c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> bool <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qgetenv </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DEFARGqstring *,&#160;</td>
          <td class="paramname"><em>NULL</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Thread safe function to work with the environment. </p>

</div>
</div>
<a class="anchor" id="a48845cf496265dca880619c3bb26ce21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OPAQUE_HANDLE </td>
          <td>(</td>
          <td class="paramtype">qsemaphore_t&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Semaphore. </p>
<p>Named semaphores are public, nameless ones are local to the process </p>

</div>
</div>
<a class="anchor" id="ad036316f67d88e89c7d34984465b3a4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qpipe_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a>&#160;</td>
          <td class="paramname"><em>handles</em>[2]</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a pipe. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">handles</td><td><ul>
<li>handles[0] : read handle</li>
<li>handles[1] : write handle </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code (0-ok) </dd></dl>

</div>
</div>
<a class="anchor" id="ab98cfc3a4848032b878c3fc727262852"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qpipe_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a>&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read from a pipe. </p>
<dl class="section return"><dt>Returns</dt><dd>number of read bytes. -1-error </dd></dl>

</div>
</div>
<a class="anchor" id="ae3a2d42e00ddd0843d3ab416e03dfad6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> <a class="el" href="pro_8h.html#ab65ed42d67e6c517c746ff2a6a187016">ssize_t</a> <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qpipe_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a>&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write to a pipe. </p>
<dl class="section return"><dt>Returns</dt><dd>number of written bytes. -1-error </dd></dl>

</div>
</div>
<a class="anchor" id="af823cc70190082a02826f571b4420664"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qpipe_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a>&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close a pipe. </p>
<dl class="section return"><dt>Returns</dt><dd>error code (0-ok) </dd></dl>

</div>
</div>
<a class="anchor" id="a2ca258578f1f14e0d046a80fc39336b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="pro_8h.html#a8ddba56b40c4be92718f8059abf51147">idaman</a> <a class="el" href="pro_8h.html#acb0b22a01885ebdb9ac572343bbc4dab">THREAD_SAFE</a> int <a class="el" href="pro_8h.html#a176294e75f953787714b9d08ffa89adf">ida_export</a> qwait_for_handles </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="pro_8h.html#a2561704a97dcdf2122a896301c1e8244">qhandle_t</a> *&#160;</td>
          <td class="paramname"><em>handles</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="pro_8h.html#a1134b580f8da4de94ca6b1de4d37975e">uint32</a>&#160;</td>
          <td class="paramname"><em>write_bitmask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout_ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for file/socket/pipe handles. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">idx</td><td>handle index </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">handles</td><td>handles to wait for </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">n</td><td>number of handles </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">write_bitmask</td><td>bitmask of indexes of handles opened for writing </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">timeout_ms</td><td>timeout value in milliseconds </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>error code. on timeout, returns 0 and sets idx to -1 </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
